繁体   English   中英

什么是C ++ const参考返回值的c#模拟

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM