我正在阅读partial methods,因为它们在C#-6 / Visual Studio 2013更新2中与Windows Universal Projects结合使用会变得更加重要。在阅读文档时,我读到了对部分方法签名的这种奇怪的限制:
部分方法可以有参考但不能输出参数。
我不明白这种限制的原因。由于部分方法基本上是在不同文件中签名和实现的常规方法,因此有哪些技术原因不支持参数?或者此限制的任何其他原因。特别是因为它们支持参数very similar。
答案 0 :(得分:8)
如果声明了部分方法但未实现,则不会调用它。
这意味着不会分配任何out
参数,这是不允许的。
这不是ref
参数的问题,因为它们必须在传递给方法之前进行分配,因此即使未调用该方法,它们也会被明确分配。
答案 1 :(得分:0)
如果你看一下在实现部分方法时需要注意的细节,这是有道理的:
部分方法实现是可选的。
永远不会为out变量赋值,而始终为ref变量赋值。考虑一下,在没有实现部分方法的情况下,我们将有一个未分配的变量。 ref变量不会出现问题,因为它有一些赋值。
由于这个原因,不支持out变量,因为out变量意味着返回了值。