有没有办法返回一个对象的只读实例?
public class Person
{
public String FirstName { get; set; }
public String LastName { get; set; }
}
public class SomeClass
{
public SomeClass(Person manager)
{
if (manager == null)
throw new ArgumentNullException("manager");
_manager = manager;
}
private readonly Person _manager;
public Person Manager
{
get { return _manager; } //How do I make it readonly period!
}
}
是通过返回 Clone() 来做到这一点的唯一方法,以便对 Clone 而不是对原始版本进行任何更改?我知道对于数组,有一个函数可以将数组作为只读返回。哦,我知道这是一个引用类型......我还想知道是否有一些隐藏的 C# 功能来锁定写作部分。
我试图想出一个通用的只读包装类,但无法弄清楚如何在不做一些昂贵的反射等的情况下将属性设为只读。
哦,我真的想避免创建所有只读属性的类的第二个版本。到时候,我还不如归还克隆人。