C#更改嵌套类的方法修饰符
我想知道这是否可行: 我有一节课C#更改嵌套类的方法修饰符,c#,nested,modifier,C#,Nested,Modifier,我想知道这是否可行: 我有一节课 class Class { private Person person = new Person(); public void NamePerson() { person.Name = "Peter"; } public Person CPerson { get { return person; } } p
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 a = new Class();
a.CPerson.Name = "Steve"; !!!!!
应该是无效的。我只想拥有读取权限
string name = a.CPerson.Name;
有没有办法在C#中做到这一点???
谢谢大家! 您可以使用以下接口:
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;
}
}
}
你是对的,我也可以在课堂外定义班级成员。