عام eventargs مدمجة لعقد خاصية واحدة فقط؟
سؤال
لدي عدد من فصول EventArgs مع حقل واحد فقط وخاصية مناسبة لقراءتها:
public class SomeEventArgs : EventArgs
{
private readonly Foo f;
public SomeEventArgs(Foo f)
{
this.f = f;
}
public Foo Foo
{
get { return this.f; }
}
}
هل هناك أي فئة مدمجة ، عامة لتنفيذ مثل هذا السلوك أم لا بد لي من لف بلدي؟
public class GenericEventArgs<T> : EventArgs
{
private readonly T value;
public GenericEventArgs(T v)
{
this.value = v;
}
public T Value
{
get { return this.value; }
}
}
ملاحظة: لقد كتبت أ اقتراح على Microsoft Connect
المحلول
لا أعتقد أن هناك.
يبدو أنك لست الشخص الوحيد الذي يسأل نفسه هذا السؤال.
إلق نظرة هنا
نصائح أخرى
إن كان هناك هو واحد ، بالتأكيد لم يتم نشره بشكل جيد! (أي ليس شيئًا أنت عنى لاستخدام الأشياء للأغراض العامة ، مثل Func<T>
.) لقد فكرت في نفس الشيء بنفسي من قبل الآن. إنه ليس مطلبًا نادرًا ، IMO.
أحد الجوانب السلبية من هذا هو أنه لا يحتوي على اسم مفيد للعقار ، بالطبع - إنه مثل EventArgs
ما يعادل Tuple
. ولكن إذا كان لديك العديد من حالات الاستخدام المختلفة لهذا و IT إرادة في الواقع كن واضحًا ما هو المعنى ، اذهب إليه :)
في هذه الصفحة في الأسفل ، يمكنك رؤية جميع الفئات موروثة من فئة EventArgs:http://msdn.microsoft.com/en-us/library/system.eventargs.aspx
الأنسب هو returneventargs http://msdn.microsoft.com/en-us/library/ms615572.aspx لكن هذا الفصل يقع في عرض التقديمي framework.dll ، الذي تتم الإشارة إليه فقط من قبل مشاريع WPF.
لذلك أوصي بإنشاء واحد الخاص بك.