ما هي الطريقة الأسهل لمعرفة ما إذا كان النوع المعلم ينفذ واجهة في c# 2.0؟
-
01-07-2019 - |
سؤال
على سبيل المثال، بالنظر إلى طريقة type param، فإنني أبحث عن شيء مثل الجزء بالخط العريض
باطلة MyMethod< T >() {
لو ( typeof(T).التنفيذ( IMyInterface ) ) {//Do something
آخر
//Do something else
}
نرحب أيضًا بالإجابات التي تستخدم C# 3.0، ولكن قم أولاً بإسقاط إجابات .NET 2.0 من فضلك؛)
المحلول
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
نصائح أخرى
أظن
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
يجب أن تعمل أيضًا:لكني لا أرى أي ميزة..
Ï لقد حاولت للتو استخدام
if( typeof(T).Equals(typeof(IMyInterface) )
...
ويعمل أيضًا، لكن إجابتك تبدو أقوى وكانت ما كنت أبحث عنه.شكرًا!
لا تنتمي إلى StackOverflow