C#语法:在函数中使用接口作为占位符';s输入

C#语法:在函数中使用接口作为占位符';s输入,c#,syntax,C#,Syntax,我有一个尚未实现的类的接口 interface IMyInterface<T>{ T f1(T a, T b); T f2(T a, T b); ... } 接口IMyInterface{ f1(ta,tb); f2(Tα,Tβ); ... } 还有一个班级 class MyClass { public static IMyInterface<T> myFunction(IMyInterface<T> a, IMyInter

我有一个尚未实现的类的接口

interface IMyInterface<T>{
    T f1(T a, T b);
    T f2(T a, T b);
    ...
}
接口IMyInterface{
f1(ta,tb);
f2(Tα,Tβ);
...
}
还有一个班级

class MyClass
{
    public static IMyInterface<T> myFunction(IMyInterface<T> a, IMyInterface<T> b){...}
} 
class-MyClass
{
公共静态IMyInterface myFunction(IMyInterface a,IMyInterface b){…}
} 

然而,这似乎不起作用。我如何设置它,使它保持通用性,只要api仍然是接口的api

函数名后面似乎缺少泛型类型参数

public static IMyInterface<T> myFunction<T>(IMyInterface<T> a, IMyInterface<T> b)

public static IMyInterface myFunction(IMyInterface a,IMyInterface b)
函数名后似乎缺少泛型类型参数

public static IMyInterface<T> myFunction<T>(IMyInterface<T> a, IMyInterface<T> b)

公共静态IMyInterface myFunction(IMyInterface a,IMyInterface b)
您需要在类名后面加上T:

interface IMyInterface<T>
{
    T f1(T a, T b);
    T f2(T a, T b);
}

class MyClass<T> // <-- note the <T>
{
    public static IMyInterface<T> myFunction(IMyInterface<T> a, IMyInterface<T> b) { return null; }
}
接口IMyInterface
{
f1(ta,tb);
f2(Tα,Tβ);
}

类MyClass/您需要在类名后加上T:

interface IMyInterface<T>
{
    T f1(T a, T b);
    T f2(T a, T b);
}

class MyClass<T> // <-- note the <T>
{
    public static IMyInterface<T> myFunction(IMyInterface<T> a, IMyInterface<T> b) { return null; }
}
接口IMyInterface
{
f1(ta,tb);
f2(Tα,Tβ);
}

class MyClass//你能澄清一下,什么似乎不起作用吗?碰巧你想要不同的类型?你能澄清一下,什么似乎不起作用吗?碰巧您想要有不同的类型?不是downvoter,但是整个类需要是
T
类型的泛型有什么原因吗?也许我没能从OP的文本中做出合理的推断?投票结果是OP(掌握了界面/类型推断的窍门)@canon这个问题不清楚。两个答案都是正确的。如果bordeo只想要一种与T相关的方法,那么你是对的。如果bordeo想把整个班级都绑在T上,那么我的答案是正确的。但是没有。。。整个类不必是T类型的泛型。也不必是downvoter,但是否有某种原因使整个类需要是T类型的泛型?也许我没能从OP的文本中做出合理的推断?投票结果是OP(掌握了界面/类型推断的窍门)@canon这个问题不清楚。两个答案都是正确的。如果bordeo只想要一种与T相关的方法,那么你是对的。如果bordeo想把整个班级都绑在T上,那么我的答案是正确的。但是没有。。。整个类不必是T类型的泛型。