Sam*_*yan 10 .net c# generics delegates
我在MSDN上阅读有关Action Delegate的内容,以及语法下的内容
public delegate void Action<in T>(T obj);
Run Code Online (Sandbox Code Playgroud)
比我查看c-sharpcorner.com并使用了这种语法
public delegate void Action<T>(T obj);
Run Code Online (Sandbox Code Playgroud)
你可以看到in
T之前没有.
哪种语法是正确的,这是什么in
意思?
编辑:使用相同的语法Predicate
.
谢谢.
Jon*_*eet 10
in
和out
(通用的逆向和协方差)只在C#4中引入,代理和接口都针对.NET 4进行了修改 - 因此Action<T>
.NET 3.5 Action<in T>
在.NET 4中得到了改进.
您所指的文章是从2006年开始的,早在.NET 4发布之前.
如果您更改了正在显示的MSDN版本,您将看到更改 - 例如,.NET 3.5版本显示它没有in
.