这个问题已经在这里有了答案:




9年前关闭。






我是C++开发人员,并且在使用C#方面有一些经验。

我一直想知道为什么C#中没有这样的东西:

bool MyFunction(const AnotherClass& x)
{
  //some stuff
}

我个人认为constness是C++的最佳功能之一(它有助于开发人员增加封装和解耦)。 Sutter的建议之一(C++编码标准:101条规则,指南和最佳实践)永远不会返回您的处理程序,如果我不能通过const引用传递的话,我将放弃整个类,而不仅仅是处理程序。

我缺乏对C#的了解吗? C#中有类似的东西吗?如果没有,为什么C#不使用它?

最佳答案

该功能在C#中不可用。您可以传递副本,
您可以将对象包装在只读适配器中,也可以将引用传递给不可变的对象/结构。

09-10 01:33