const 正确性的要点是能够提供用户无法更改或删除的实例的视图。编译器通过指出何时从 const 函数中破坏常量性或尝试使用 const 对象的非 const 函数来支持这一点。那么,在不复制 const 方法的情况下,我是否可以在 C# 中使用具有相同目的的方法?
我知道不变性,但这并没有真正延续到容器对象,仅举一个例子。
我也多次遇到过这个问题,最终还是使用了接口。
我认为重要的是放弃 C# 是任何形式,甚至是 C++ 的演变的想法。它们是两种不同的语言,但语法几乎相同。
我通常通过定义类的只读视图来表达 C# 中的“常量正确性”:
public interface IReadOnlyCustomer
{
String Name { get; }
int Age { get; }
}
public class Customer : IReadOnlyCustomer
{
private string m_name;
private int m_age;
public string Name
{
get { return m_name; }
set { m_name = value; }
}
public int Age
{
get { return m_age; }
set { m_age = value; }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)