Использовать свойства коллекции с объектом-членом - PullRequest
0 голосов
/ 03 августа 2011

Если у меня есть коллекция, скажем, Cells, и если на нее ссылаются как Cells[1,1], это дает мне объект этой коллекции, но у объекта-члена нет определенного свойства, которым обладает объект коллекции.Есть ли способ вызвать это свойство от участника?Аналогично тому, как предполагается, StartPosition является свойством класса объекта для коллекции:

Cells [1,1] .StartPosition

или, возможно,

Ячейки [1,1] .ParentCollection.StartPosition

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Вы можете вызывать только те свойства, которые определены для объекта, к которому вы обращаетесь.

То есть, если вы хотите вызывать метод для коллекции, вызывайте его для коллекции, а не для содержимого объекта.collection.

Вы могли бы добавить ссылку на содержащую коллекцию к каждому элементу, который вы в нее помещаете, если вы разрабатываете и конструируете свои классы таким образом.

Примечание:

Ваша запись запись массива , для 2-мерных массивов.Хотя массивы являются коллекциями, большинство коллекций .NET не считается массивами, даже если они имеют индексаторы .

0 голосов
/ 03 августа 2011

Вы можете либо обернуть это в свойство Cell, либо в то, что вы возвращаете. Таким образом, вы добавили бы это к Cell классу:

public int StartPosition { 
    get { return this.ParentCollection.StartPosition; } 
}

Если вы не можете изменить класс, вы можете добавить метод расширения, например ::

public static class CellExtensions {
 public static int GetStartPosition(this Cell cell) {
   return cell.ParentCollection.StartPosition;
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...