C# 改变嵌套的方法修饰符 Class
C# Change Method Modifier of nested Class
我想弄清楚这是否可能:
我有一个 class
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# 中做到这一点???
谢谢!
您可以为此使用接口:
public interface IPerson
{
string Name { get; }
}
public class Person : IPerson
{
public string Name { get; set; }
}
现在在 class 中,您将对象引用为 Person
,但只有 return IPerson
的实例:
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public IPerson CPerson
{
get
{
return person;
}
}
}
我想弄清楚这是否可能: 我有一个 class
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# 中做到这一点??? 谢谢!
您可以为此使用接口:
public interface IPerson
{
string Name { get; }
}
public class Person : IPerson
{
public string Name { get; set; }
}
现在在 class 中,您将对象引用为 Person
,但只有 return IPerson
的实例:
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public IPerson CPerson
{
get
{
return person;
}
}
}