2014-01-05 79 views
0

比如我想實現這個接口的擴展方法:如何創建一個接受一個類作爲一個參數

class A 
{ 
} 

class B 
{ 
} 

interface C 
{ 
    void SomeMethod(); 
} 

A.ExtentionMethod(B,C); 

請注意,我傳遞了A型和C ExtentionMethod(而不是實例)

+2

請重新格式化您的問題。 –

回答

1

另一種選擇是使用仿製藥,而不是傳遞參數

public static class Extensions 
{ 
    public static void ExtensionMethod<T1, T2>(this A a) 
    { 
     // ANywhere you would use the parameters use T1 and T2 instead. 
    } 
} 

A a; 
a.ExtensionMethod<B, C>(); 

IMO,這比使用typeof()更具可讀性。

+0

謝謝。這正是我所期待的。 – Jay

0
public static class Extensions 
{ 
    public static void ExtensionMethod(this A a, Type c1, Type c2) 
    { 
    } 
} 

A a; 
a.ExtensionMethod(typeof(B), typeof(C)); 

但是,我不明白這是如何非常有用。請更具體一點你想要什麼。

1

使用此代碼:

public static class Util 
    { 
     public static void ExtensionMethod<t1, t2>(this A aobj) 
    { 
    } 
    } 
0

您可以使用該接口這樣

public static class Extension 
{ 
    public static void Method1(this IMyInterface myInterface, int i) 
    { 
     Console.WriteLine("Extension.Method1"); 
    } 

    public static void Method1(this IMyInterface myInterface, string s) 
    { 
     Console.WriteLine("Extension.Method1"); 
    } 
} 
+0

爲什麼要給我downevote? –

相關問題