Hai Meraklıları, C#C#: bir DateTime nesnesi kabul eder ve bir boolean dönmek noktaya yayın temsilci tanımlayabilirsiniz nasıl boolean dönüş türü
ile Çoklu Yayın temsilci oluşturma.
sayesinde
Hai Meraklıları, C#C#: bir DateTime nesnesi kabul eder ve bir boolean dönmek noktaya yayın temsilci tanımlayabilirsiniz nasıl boolean dönüş türü
ile Çoklu Yayın temsilci oluşturma.
sayesinde
public delegate bool Foo(DateTime timestamp);
hakkında bir referanstır. Tüm delegeler potansiyel olarak çok noktaya yayındır, basitçe başlatma gerektirirler. Mesela:
public bool IsGreaterThanNow(DateTime timestamp)
{
return DateTime.Now < timestamp;
}
public bool IsLessThanNow(DateTime timestamp)
{
return DateTime.Now > timestamp;
}
Foo f1 = IsGreaterThanNow;
Foo f2 = IsLessThanNow;
Foo fAll = f1 + f2;
bu durumda IsGreaterThanNow()
ve IsLessThanNow()
hem çağırır, fAll
çağrılıyor.
Bunun yapmaması, her dönüş değerine erişmenizi sağlamaktır. Tek ihtiyacınız olan son değer. Eğer her değerini almak istiyorsanız, bunu gibi elle noktaya yayını ele almak gerekecek:
List<bool> returnValues = new List<bool>();
foreach(Foo f in fAll.GetInvocationList())
{
returnValues.Add(f(timestamp));
}
class Test
{
public delegate bool Sample(DateTime dt);
static void Main()
{
Sample j = A;
j += B;
j(DateTime.Now);
}
static bool A(DateTime d)
{
Console.WriteLine(d);
return true;
}
static bool B(DateTime d)
{
Console.WriteLine(d);
return true;
}
}
herhangi temsilci bir çok noktaya yayın temsilci olabilir
delegate bool myDel(DateTime s);
myDel s = someFunc;
s += someOtherFunc;
temsilci yararlı bir özelliği bunlar bir temsilci atanabilir olmasıdır nesneleri örneği, çok noktaya yayın kullanarak + operatörü. Oluşturulan bir delege, 'dan oluşan iki delegeyi çağırır. Sadece aynı türde delegeleri oluşturulabilir.
DÜZENLEME: Bir delagate bağlı yöntem ile bir liste döndüren bir yöntem GetInvocationList sahiptir . İşte
Bu açıkladığınız imzası ile bir temsilci ilan etmek nasıl Delegate invocationforeach(myDel d in s.GetInvocationList())
{
d();
}
Ben aynı sorunu üzerine tökezleyerek edildi. Bunu aradım ve msdn olarak buldum.
http://msdn.microsoft.com/en-us/library/2e08f6yc(v=VS.100).aspx
bağlantı ile kod örnekleri, ayrıntılı olarak bu açıklar delege
Delegelerin dönüş değerlerini işlemek için bu yöntemlere bağlanabiliriz.
Bunu çağırdığınızda, oluşturulmuş bir temsilci döndürme değerlerine ne olur? Dönüş değerlerini çağırdıktan sonra incelemenizi sağlayan bir dizi dizi var mı? Daha önce multicast delegeleri kullandım, ama bir dönüş tipi olanları düşünmedim. – AaronLS