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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |