2014-02-17 5 views
-1
myObject.property1 = value1; 
myObject.property2 = value2; 

Я хотел бы получить доступ к свойствам по индексу, как:Доступ к свойствам объекта по индексу

"myObject.property[0]" = value1; 
"myObject.property[1]" = value2; 

Можно ли перечислить свойство или сделать что-то еще?

+2

Почему вы хотите это сделать? Просто интересно – Kuzgun

+0

Я настоятельно рекомендую вам дать лучшие имена своим свойствам. – Crono

ответ

0

Вы можете перечислить членов класса через reflection, но это не то, что вы хотите использовать для получения или установки значений по известному типу в обычном сценарии. Это не работает, сложно писать, а не обязательно безопасно для исполнения и кошмар для чтения.

+0

Я не думаю, что мы можем добавить параметры в свойство getter (или setter) в C#. Если это то, что хочет OP, для этого потребуется отдельный метод getter (как и Java getter), а не свойство стиля C#. – dureuill

+0

А, это мои извинения. Я бывший программист VB, который был недавно преобразован. :) Я отредактировал свой ответ. – Crono

0

Если вы подвергаете список внутри вашего класса, вы можете сделать это:

class MyClass { 
    public List<object> property { get; private set; } 
    public MyClass() { 
     property = new List<object>(100); 
    } 
} 

... 

var myObj = new MyClass(); 
myObj.property[0] = 1; 
myObj.property[1] = "hello"; 

Это не очень хорошая идея, хотя. Как правило, гораздо лучше выставлять разные типизированные параметры с именами, поскольку компилятор может помочь вам избежать ошибок, и код будет намного проще в обслуживании.

Смежные вопросы