小编ard*_*ada的帖子

返回实现相同接口的不同泛型

考虑有办法

static IEnumerable<IComparable> q()
{
   return new List<string>();
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现相同的功能,但是在我自己的课程上,因此我收到转换错误CS0266

我尝试过这种方式,return (Common<Message>)new A();但结果InvalidCastException

interface Common<T> where T : Message
{
    T Source { get; }
    void Show();
}
interface Message
{
    string Message { get; }
}
class AMsg : Message
{
    public string Message => "A";
}
class A : Common<AMsg>
{
    public AMsg Source => new AMsg();
    public void Show() { Console.WriteLine(Source.Message); }
}
static Common<Message> test()
{
    return new A(); //CS0266
}
Run Code Online (Sandbox Code Playgroud)

该方法如何返回实现相同接口的不同泛型?

c# generics

2
推荐指数
1
解决办法
60
查看次数

标签 统计

c# ×1

generics ×1