Привет Я кратко изложил свою проблему в следующем фрагменте кода. В первом коде я объявил делегат и событие в том же классе, что и в Код 2 Я объявил делегат и событие в отдельном классе.Объявление делегата
Код 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 + "!");
}
}
}
код 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);
}
}
}
Теперь у меня есть один Ques Имеются ли какие-либо различия (например, потокобезопасность, производительность) между этими двумя фрагментами кода?
определить `разница`! – 2010-12-09 12:08:51
@Andreas: Как безопасность потока, производительность. – 2010-12-09 12:10:36