2010-12-16 49 views
2

可能重复:
Why const parameters are not allowed in C#有没有像c + + const在c#中?

我是一个C++开发人员,我不得不使用C#的一些经验。

我一直想知道为什么会出现这样的事在C#:

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

我个人认为,常量性是在C中最好的功能之一++(它可以帮助开发人员提高封装和去耦)。 Sutter(C++编码标准:101规则,指南和最佳实践)的建议之一是不会返回你的处理程序,如果我不能通过const引用传递,我将整个类而不仅仅是处理程序。

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

+0

const的正确性与封装或解耦有什么关系? – Mud 2010-12-16 16:03:22

+0

我不是一个C++专家,但是不是只是在C#中的'bool MyFunction(AnotherClass x)'? – SWeko 2010-12-16 16:05:11

+3

“为什么......”,因为C#是一种有限的语言,它试图以灵活性和可维护性为代价变得更简单。 – ybungalobill 2010-12-16 16:05:35

回答

2

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

相关问题