webForumDet fria alternativet

Nätverksklass (C#)

2 svar · 377 visningar · startad av xcalibrate

xcalibrateMedlem sedan aug. 2002136 inlägg
#1

Hej, jag håller på att konvertera min nätverksklass i VB.NET till C# och jag har precis börjat. Och jag tänkte "raisa mina events" (se nedan):

using System;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;

namespace Dennis_Chat_Client
{
	public class Networking
	{       
		public Socket clientSocket;

		public delegate void ConnectHandler(string IP, int Port);
		public delegate void ErrorHandler(string errorMessage);

		public event ConnectHandler ConnectEvent;
		public event ErrorHandler ErrorEvent;

		public Networking()
		{
			// Starting
		}

		public void Connect(string IP, int Port) 
		{
			try 
			{
				TcpClient clientSocket = new TcpClient(IP, Port);
				ConnectEvent(IP, Port);
			} 
			catch (Exception e) 
			{
				ErrorEvent(e.ToString());
			}

		}

När jag använder Connect klagar den på ConnectEvent(IP, Port)-raden. Någon som vet hur jag raisar event i c#?

JosefMedlem sedan mars 20023 561 inlägg
#2

Hur ser felmeddelandet ut?

GladhMedlem sedan maj 20012 812 inlägg
#3
catch(Exception e){
 //-- Check so somebody is listening for this event
 if(ErrorEvent != null)
  //-- Raise event
  ErrorEvent(e.Message);
}

Man brukar dock inte skicka med strängar och andra enkla typer i dessa events. Det man gör är att man skapar en EventArgument klass som man instancierar och skickar med i sitt event istället.

Det blir enklare att underhålla om man kommer på att man måste skicka med fler parameters.

- M

217 ms totalt · 3 externa anrop · v20260731065814-full.30151723
214 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
213 ms — hämta tråd, inlägg och bilagor (db)