【发布时间】:2014-12-06 22:59:51
【问题描述】:
out 变量引用可以使用未分配变量的地址进行初始化,但 ref 变量不能这样做,这使得 out 优于 ref。那么ref有什么用呢?
【问题讨论】:
-
正确答案是“因为它是”。这就是
out的定义。 -
@Mephy 仍然有 5 个人聚集在一起提供答案。
-
@ShamseerKSmr 这是一个简单的谷歌
c# out搜索。您将获得 MSDN 页面:msdn.microsoft.com/en-us/library/t3c3bfhx.aspx。在那里,您会看到以下注释:“虽然作为输出参数传递的变量在传递之前不必初始化,但调用的方法需要在方法返回之前分配一个值” 。简单! -
您能否澄清您的要求 - 您本质上说您知道编译器必须显示错误,因为它是在 C# 规范中指定的(基于您说您知道
ref和out)。那么您是否在寻找 C# 规范同时具有ref和out的历史原因?或者是其他东西? (请注意,您想要的信息可能会出现在ref vs out SO 问题中。) -
您不应该将初始化的变量传递给输出参数。那不是它的用途。那么为什么编译器会考虑到这一点。