C# 返回实现同一接口的不同泛型

C# 返回实现同一接口的不同泛型,c#,generics,C#,Generics,考虑到有一种方法 static IEnumerable<IComparable> q() { return new List<string>(); } 该方法如何返回实现相同接口的不同泛型?IEnumerable这就是第一个代码块工作的原因。要执行相同的操作,您需要通过添加修饰符使T类型参数协变: interface Common<out T> where T : Message { T Source { get; } void Sho

考虑到有一种方法

static IEnumerable<IComparable> q()
{
   return new List<string>();
}

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

IEnumerable
这就是第一个代码块工作的原因。要执行相同的操作,您需要通过添加修饰符使
T
类型参数协变:

interface Common<out T> where T : Message
{
    T Source { get; }
    void Show();
}
接口通用,其中T:Message
{
T源{get;}
void Show();
}
现在您可以编写如下代码:

Common<Message> x = new A();
Common x=newa();

你能举例说明你的传递哪些有效,哪些无效,哪些无效,以及你的预期和实际结果吗are@SimonPrice这个问题已经有了所有的信息,你还需要什么?
Common<Message> x = new A();