Fra*_*nin 6 c# generics c#-4.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Variance
{
class A { }
class B : A { }
class C<out T> { }
class Program
{
static void Main(string[] args)
{
var v = new C<B>();
CA(v);
}
static void CA(C<A> v) { }
}
}
Run Code Online (Sandbox Code Playgroud)
jas*_*son 10
这是违规行:
class C<out T>
Run Code Online (Sandbox Code Playgroud)
正如错误消息所示,您不能将通用方差应用于类,只能应用于接口和委托.这没关系:
interface C<out T>
Run Code Online (Sandbox Code Playgroud)
以上不是.
有关详细信息,请参阅创建变体通用接口
您正在尝试将通用差异应用于类。这不受支持。它仅在接口和委托类型上受支持。
非法的:
class C<out T> { }
Run Code Online (Sandbox Code Playgroud)
合法的:
interface C<out T> {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4365 次 |
| 最近记录: |