Hallo Ich habe mein Problem in folgenden Code-Snippet zusammengefasst. Im ersten Code habe ich einen Delegierten und ein Ereignis in der gleichen Klasse deklariert, während in Code 2 ich Delegat und Ereignis in separate Klasse deklariert habe.Delegierte Deklaration
-Code 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
delegate void Greeting(string s);
event Greeting myEvent;
void OnFire(string s)
{
if (myEvent != null)
myEvent(s);
}
static void Main(string[] args)
{
Program obj = new Program();
obj.myEvent += new Greeting(obj_myEvent);
obj.OnFire("World");
}
static void obj_myEvent(string s)
{
Console.WriteLine("Hello " + s + "!");
}
}
}
Code 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DelegateDemo obj = new DelegateDemo();
obj.myEvent+=new DelegateDemo.Greeting(obj_myEvent);
obj.OnFire("World");
}
static void obj_myEvent(string s)
{
Console.WriteLine("Hello "+s +"!");
}
}
}
DelegateDemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class DelegateDemo
{
public delegate void Greeting(string s);
public event Greeting myEvent;
public void OnFire(string s)
{
if (myEvent != null)
myEvent(s);
}
}
}
Jetzt habe ich eine ques Gibt es irgendeinen Unterschied (wie thread-safe, Performance) zwischen diesen beiden Code-Snippets?
define 'Unterschied'! –
@Andreas: Wie Thread-Sicherheit, Leistung. –
Anders als ein paar Dinge sind in verschiedenen Klassen definiert? –