Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 声明我不';我不太明白(setter=(o)=>;{};)_C# - Fatal编程技术网

C# 声明我不';我不太明白(setter=(o)=>;{};)

C# 声明我不';我不太明白(setter=(o)=>;{};),c#,C#,好的,我有一段代码,初始化C#中属性的默认值。 资料来源: 现在我已经改写为C++代码,它不支持扩展,但提供了 对象的ApplyDefaultValues也起作用 我不能重写C++的一行是包含表达式的行: setter = (o) => { }; 我想知道是否有人知道这条线的用途。谷歌没有给出任何结果这是一个lambda函数,只接受一个参数,什么也不做setter将是类型Action,其中o是类型T的实例。它是一个lambda,一个可以在代码中调用的“函数”: Action<obj

好的,我有一段代码,初始化C#中属性的默认值。 资料来源:

现在我已经改写为C++代码,它不支持扩展,但提供了 对象的ApplyDefaultValues也起作用

我不能重写C++的一行是包含表达式的行:

setter = (o) => { };

我想知道是否有人知道这条线的用途。谷歌没有给出任何结果

这是一个lambda函数,只接受一个参数,什么也不做

setter将是类型
Action
,其中o是类型T的实例。它是一个lambda,一个可以在代码中调用的“函数”:

Action<object> setter = (o) => { };
setter(new object());
Action setter=(o)=>{};
setter(新对象());

在这种情况下,函数不做任何事情,对于类型动作的类型,null对象是/> p>我猜你不是在谈论C++ + CLI,那么你用什么C++机制来表示.NET委托?真的,这段代码是从我所发布的链接到代码项目的代码(它在zip文件中)。我确实重写了从C#到C++/CLI的所有内容,以便在我的C++/CLI公共库中使用它。这是一只留着山羊胡子的独眼巨人!好的,我明白了,我想,(o)是lambda函数的参数/参数列表,{}将是主体?只是为了确保如果调用setter(newobject());没有为setter分配任何内容不会导致错误。请更正参数和正文。然而,若并没有为setter分配任何内容,使用它实际上会导致空引用异常。因此出现了“空对象”模式。你可以调用它,没有例外,你不需要检查null,也没有副作用发生。