我想知道这是否可行: 我有课
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public Person CPerson
{
get
{
return person;
}
}
public class Person
{
public string Name { set; get; }
}
}
在Class
内部我想拥有对person
对象的完全访问权限。
但在 Class
之外拥有 Person
的写入权限
Class a = new Class();
a.CPerson.Name = "Steve"; !!!!!
应该是无效的。我只想拥有读取权限。
string name = a.CPerson.Name;
有没有办法在 C# 中做到这一点??? 谢谢!
最佳答案
您可以使用一个接口(interface)来实现:
public interface IPerson
{
string Name { get; }
}
public class Person : IPerson
{
public string Name { get; set; }
}
现在在类中,您将对象引用为 Person
,但仅返回 IPerson
的实例:
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public IPerson CPerson
{
get
{
return person;
}
}
}
关于C# 更改嵌套类的方法修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182545/