【问题标题】:C# Change Method Modifier of nested ClassC#更改嵌套类的方法修饰符
【发布时间】:2019-12-04 18:25:21
【问题描述】:

我想知道这是否可能: 我有课

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# 中做到这一点??? 谢谢!

【问题讨论】:

  • 你说得对,我也可以在Class之外定义类Person。

标签: c# nested modifier


【解决方案1】:

您可以为此使用接口:

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;
        }
    }    
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2015-10-14
    • 2012-03-08
    相关资源
    最近更新 更多