[英]What is c# analog of C++ const reference return value
我把c ++访问器写成类成员
SomeClass const& x() const { return m_x; }
似乎c#中这种唯一的保护是使用私有(或未定义)集定义属性。 但是这只能防止分配而不是操纵某些阶级状态。
旁注:c ++允许通过const指针删除m_x - 恕我直言,这简直是对标准体的疏忽。
C ++中的const
不能防止任何事情,你可以毫无问题地将其丢弃。
虽然C#没有它的等价物,但你可以 (并且通常应该)创建真正的不可变类。 这使得const
对象的负担在它所属的对象上返回,并且你无法做什么来“抛弃它”(禁止反射)。
现在,使用C#7.2,您可以将ref readonly
用于相同的目的。 你可以在这里查看更多相关信息。 检查第三点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.