2015-11-04 3 views
0

Я создал массив типа Account. Затем я заполнил массив объектами Account.
Теперь я пытаюсь получить доступ к объекту по адресу array[i], чтобы я мог изменить одну из своих переменных и перейти к следующему объекту.Как получить доступ к свойству объекта в массиве [i] (C#)

public class Account { 
    string client; 
    string firstName; 
    string lastName; 
    string planName; 
    string startDate; 
    string endDate; 
    string eeCost; 
    string erCost; 
    string total; 
} 

Account[] webData = new Account[3]; 

for(int i = 0; i < webData.Length; i++) { 
    webData[i] = new Account(); 
} 

Как получить доступ к объекту по webData[i]?

for(int i = 0; i < webData.Length; i++) { 
    webData[i].firstName = "Anna"; 
} 

ответ

3

Все в порядке в вашем примере. Именно так вы получаете доступ к полю.

Проблема в том, что эти поля не являются общедоступными - в C#, модификатор доступа по умолчанию для членов класса - private.

Он должен быть объявлен как public для того, чтобы сделать его доступным за пределами класса:

public class Account { 
    public string client; 
    public string firstName; 
    public string lastName; 
    public string planName; 
    public string startDate; 
    public string endDate; 
    public string eeCost; 
    public string erCost; 
    public string total; 
} 

Кстати, лучше использовать свойство. Подробнее о:
- What is auto-property? в MSDN
- And why you should use it на Programmers.SE

+0

Просто nitpicking, но это поля, а не свойства (и они должны быть свойствами, а не полями). –

5

Make ПгвЬЫате в качестве публичной переменной с геттер/сеттер добавил, тогда вы сможете получить доступ к свойствам, по умолчанию, если нет доступа модификатор присутствует, тогда CLR рассматривает его как частный

public string FirstName { get; set; }