加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# – MyClass.MyProperty [东西]

发布时间:2020-12-15 18:32:03 所属栏目:百科 来源:网络整理
导读:我想做点什么,但不知道如何描述它.我有这门课 public class Company { private ListPerson _persons; private Person GetPersonByName(string name) { // My code to select Person is here,which is fine }} 但我希望能够做到这一点 Company c;Person p = c
我想做点什么,但不知道如何描述它.我有这门课
public class Company {
  private List<Person> _persons;
  private Person GetPersonByName(string name) {
    // My code to select Person is here,which is fine
  }
}

但我希望能够做到这一点

Company c;
Person p = c.Persons["John"];

应隐式调用GetPersonByName(“John”).

那可能吗?我需要向公司课程添加什么?

提前致谢!

解决方法

是的,这是可能的.您需要创建一个访问者类,如下所示:
public class Company
{
    private List<Person> _persons;
    public class PersonsIndexer
    {
        Company _owner;
        public PersonsIndexer(Company owner)
        {
            _owner = owner;
        }
        public Person this[string name]
        { 
            get
            {
                 return _owner._persons.FirstOrDefault(x=>x.Name == name); // or whatever code you have there
            }
        }
    }

    public PersonsIndexer Persons{ get; private set; }

    public Company() 
    {
        Persons = new PersonsIndexer(this);
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读