Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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# 为什么分部方法支持ref而不支持out参数_C#_Partial Methods - Fatal编程技术网

C# 为什么分部方法支持ref而不支持out参数

C# 为什么分部方法支持ref而不支持out参数,c#,partial-methods,C#,Partial Methods,我一直在阅读,因为它们在C#6/Visual Studio 2013更新2中结合使用将变得更加重要。在阅读文档时,我读到了关于部分方法签名的奇怪限制: 分部方法可以有ref参数,但不能有out参数 我不明白这个限制的原因。既然分部方法基本上是一种在不同文件中签名和实现的普通方法,那个么不支持out参数又有什么技术原因呢?或任何其他对此限制的原因。特别是因为它们确实支持ref参数,如果声明了分部方法但未实现,则不会调用分部方法 这意味着未分配任何out参数,这是不允许的 这不是ref参数的问题,因

我一直在阅读,因为它们在C#6/Visual Studio 2013更新2中结合使用将变得更加重要。在阅读文档时,我读到了关于部分方法签名的奇怪限制:

分部方法可以有ref参数,但不能有out参数


我不明白这个限制的原因。既然分部方法基本上是一种在不同文件中签名和实现的普通方法,那个么不支持out参数又有什么技术原因呢?或任何其他对此限制的原因。特别是因为它们确实支持ref参数,如果声明了分部方法但未实现,则不会调用分部方法

这意味着未分配任何
out
参数,这是不允许的


这不是
ref
参数的问题,因为在将参数传递给方法之前必须对其进行赋值,因此即使未调用该方法,也必须对其进行赋值。

如果您在实现部分方法时查看需要注意的细节,那么这是有意义的:

部分方法实现是可选的

out变量从不赋值,而ref变量总是赋值。考虑到当不执行部分方法时,我们将有一个未分配的变量。ref变量没有问题,因为它有一些赋值


因此,不支持out变量,因为out变量意味着返回值。

我不知道对分部方法的所有调用都被删除了。事实上,这很可怕。谢谢你的信息!