11
A
回答
4
這完全適用於我
class Test
{
public delegate void MyHandler(string x);
public void RunTest()
{
var del = new MyHandler(Method);
if (del is Delegate)
{
Console.WriteLine(@"del is a delegate.");
}
else
{
Console.WriteLine("del is not a delegate");
}
}
private void Method(string myString)
{
}
}
23
當然,同任何其他類型的:
if (foo is Delegate)
或者某個類型:
if (typeof(Delegate).IsAssignableFrom(t))
2
你可以只檢查是否obj is Delegate
。
所有委託類型都繼承基類Delegate
類。
1
是。檢查該類型是否繼承自System.Delegate。下面是一個工作示例,其中包含一些簡單的測試,以確保我們有適當的代表對象:
using System;
public class MyClass
{
delegate void DelegateType();
public static void Main()
{
DelegateType obj = method;
obj.Method.Invoke(null, null);
if (obj is System.Delegate)
Console.WriteLine("Type is a delegate");
else
Console.WriteLine("Type is NOT a delegate");
}
private static void method() {Console.WriteLine("Invoked");}
}