Одна вещь, чтобы рассмотреть то, что способность вы хотите предоставить обновление перечень , Если вы просто выставить список как получить свойство только, то ничего не мешает кому-то из изменения списка:
public class foo{
private List<type> list = new List<type>;
public List<type> List{
get{return list}
}
}
//Much later....
foo Foo = new foo();
Foo.List.Clear(); // perfectly legal
Если, однако, вы хотите список «только для чтения» разоблачен, то вы можете разоблачить список, как только для чтения:
public class foo{
private List<type> list = new List<type>;
public IList<type> List{
get{return list.AsReadOnly()}
}
}
//Much later....
foo Foo = new foo();
Foo.List.Clear(); // not possible
EDIT
Основываясь на ваш комментарий на другой вопрос, остается неясным, следует ли подвергать л ist как собственность или доступ штук по индексу. Для последнего вы можете добавить указатель в класс:
public class foo{
private List<type> list = new List<type>;
public type this[int i]{
get{return list[i]}
get{list[i] = value}
}
}
//Much later....
foo Foo = new foo();
Console.WriteLine(Foo[1]);
Я хочу использовать индекс, но не применять его ко всему классу (в моем реальном коде есть несколько списков, поэтому каждому нужно свойство, которое позволяет Foo.List [i], Foo.OtherList [i] и т. д.) – Joe
Затем просто выведите список как свойство (с возможностью сделать его доступным только для чтения, как я упоминаю) –