我怎样才能创建一个方法来获取一个只读目的的对象
public class Person
{
public string Name;
}
public void RunMe(Person p)
{
p.Name="XXXX";
}
var p =new Person();
p.Name="YYYY";
RunMe(p);
Console.WriteLine(p.Name);
我得到了 XXXX。但我希望 person 对象不会改变它的值。
最佳答案
您可以使用接口(interface)来限制访问。最好将接口(interface)而不是具体对象作为参数传递给方法。
public interface IReadablePerson
{
string Name { get; }
}
public interface IWritablePerson
{
string Name { set; }
}
public class Person : IReadablePerson, IWritablePerson
{
public string Name { get; set; }
}
然后有这样的方法
public void RunMe(IReadablePerson p)
{
p.Name = "XXXX"; //compile time error!!!
}
关于c# - 将方法参数设置为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719107/