C#接口指定泛型返回类型

Riv*_*ver 17 c# generics interface

我有类似的东西:

public interface IExample
{
  int GetInteger()
  T GetAnything(); //How do I define a function with a generic return type???
^^^^^
}
Run Code Online (Sandbox Code Playgroud)

这可能吗???

Fem*_*ref 47

如果整个界面应该是通用的:

public interface IExample<T>
{
  int GetInteger();
  T GetAnything();
}
Run Code Online (Sandbox Code Playgroud)

如果只有方法需要通用:

public interface IExample
{
  int GetInteger();
  T GetAnything<T>();
}
Run Code Online (Sandbox Code Playgroud)

  • +1.我完全忘记了该方法可以拥有自己的类型参数:) (2认同)
  • 如果可能的话,最好使用.NET 4.0来使用协方差:public interface IExample <out T>,T GetAnything <out T>(); (2认同)
  • 那我该如何实现接口功能呢? (2认同)
  • 请注意,如果整个接口是通用的,那么实现它的类可能是具有相同类型参数的泛型类,或者必须为它应支持的任何类型显式实现接口.在前一种情况下,要使`GetAnything`返回类型`Foo`,必须有一个`ClassImplementingIExample <Foo>`. (2认同)

小智 5

public interface IExample<T>
{
   int GetInteger()
   T GetAnything();
}
Run Code Online (Sandbox Code Playgroud)

Tadaa :)!

或者,您可以只返回System.Object并将其转换为您想要的任何内容.

  • 这非常难看 - 返回System.Object并将其转换为你想要的任何东西 (2认同)