gpt4 book ai didi

C# 改变嵌套类的方法修饰符

转载 作者:行者123 更新时间:2023-11-30 21:26:29 24 4
gpt4 key购买 nike

我想弄清楚这是否可能:我有课

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com