我是C ++开发人员,我有一些使用C#的经验。
我一直想知道为什么C#中没有这样的东西:
bool MyFunction(const AnotherClass& x)
{
//some stuff
}
我个人认为constness是C ++中最好的功能之一(它有助于开发人员增加封装和解耦)。 Sutter(C ++编码标准:101规则,指南和最佳实践)的建议之一永远不会返回您的处理程序,如果我不能通过const引用,我将不仅仅是处理程序而放弃整个类。
我对C#缺乏了解吗? C#中有类似的东西吗?如果没有,为什么C#不使用它?
答案 0 :(得分:2)
Eric Lippert发表了一篇很棒的文章:Why are const parameters not allowed in C#?
答案 1 :(得分:2)
C#中没有该功能。你可以传递副本, 您可以将对象包装在只读适配器中,也可以将引用传递给不可变对象/结构。