Salut J'ai résumé mon problème dans l'extrait de code suivant. Dans le premier code j'ai déclaré un délégué et un événement dans la même classe alors que dans Code 2 j'ai déclaré délégué et événement dans une classe séparée.Déclaration de délégué
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);
}
}
}
Maintenant, j'ai une ques Y a-t-il des différences (comme la sécurité des threads, les performances) entre ces deux extraits de code?
définir 'différence'! –
@Andreas: Comme la sécurité du fil, la performance. –
Autre que quelques choses sont définies dans différentes classes? –