C#中的Const函数参数

可能重复:
C#的只读(“const”式)函数参数
为什么C#和const参数中没有const成员方法?

在过去用C ++编程时,我记得我们可以在方法中创建一个常量引用/指针参数。

如果我的记忆是正确的,则下面的意思是该方法不能改变参考,并且参考本身是一个常量参考。

C ++示例

void DisplayData(const string &value) const { std::count << value << endl; } 

C#中是否存在类中方法的等价物?

我问的原因是,我试图通过引用传递一个对象(速度),同时不希望任何人改变它。

没有C#的等价物,之前已经被问过很多次, 很多次。

如果您不希望任何人更改“引用”,或者您可能意味着对象的内容,请确保该类不公开任何公共setter或变更类的方法。 如果您无法更改类,请让它实现一个仅以只读方式公开公开成员的接口,并改为传递接口引用。

如果您的意思是要停止更改引用的方法,那么默认情况下,如果您通过“引用”传递它,则实际上是按值传递引用。 从方法更改引用指向的任何尝试只会影响本地方法副本,而不影响调用方的副本。 这可以通过在引用类型上使用ref关键字来更改,此时该方法可以将引用指向新的基础对象,并且它将影响调用者。

对于值类型( intdoublebytechar ,…, struct ),参数以值的forms出现,因此保证不会影响该调用模块。

对于string类型,尽管它是引用类型,但它是CLR不可变的,因此您在过程中执行的任何操作都不会影响原始字符串。

对于其他引用类型( class ),无法保证类中的方法发生更改。