C# 如何创建接受类和接口作为参数的扩展方法
例如,我试图实现以下目标:C# 如何创建接受类和接口作为参数的扩展方法,c#,C#,例如,我试图实现以下目标: class A { } class B { } interface C { void SomeMethod(); } A.ExtentionMethod(B,C); 请注意,我正在将类型A和C传递给ExtensionMethod(不是实例) 然而,我不认为这是多么有用。请更具体地说明您想要什么。使用以下代码: public static class Util { public static void ExtensionMetho
class A
{
}
class B
{
}
interface C
{
void SomeMethod();
}
A.ExtentionMethod(B,C);
请注意,我正在将类型A和C传递给ExtensionMethod(不是实例)
然而,我不认为这是多么有用。请更具体地说明您想要什么。使用以下代码:
public static class Util
{
public static void ExtensionMethod<t1, t2>(this A aobj)
{
}
}
公共静态类Util
{
公共静态void扩展方法(这是aobj)
{
}
}
您可以像这样使用界面
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");
}
}
另一种选择是使用泛型而不是传递参数
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>();
公共静态类扩展
{
公共静态void扩展方法(此方法)
{
//在任何使用参数的地方,都可以使用T1和T2。
}
}
A A;
a、 ExtensionMethod();
在我看来,这比使用
typeof()
时可读性更强。请重新格式化您的问题。谢谢。这正是我想要的。
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>();