2012-03-07 5 views
0

Что я хотел бы сделать, это создать объект, а затем использовать набор и get's и поместить его в массив внутри объекта. Это возможно? Итак, из моего примера ниже у меня есть наборы и get для имени бара, но затем я хочу сохранить имя и locaion в массиве внутри объекта, доступ к которому будет доступен позднее. Это возможно?Создание массива внутри объекта

public class barlist 
{ 
    private string barName; 
    private string barLocation; 

    public string Name 
    { 
     get { return barName; } 
     set { barName = value; } 
    } 

    public string Location 
    { 
     get { return barLocation; } 
     set { barLocation = value; } 
    } 
} 
+0

Есть ли конкретная причина, по которой вы хотели бы это сделать? – Khan

+0

Вы хотите поместить объект в массив, находящийся внутри объекта? – Oded

+0

Я не уверен, что полностью пойду за тобой. Почему бы вам просто не сделать класс «Бар», а затем использовать «Список »? –

ответ

0

Возможное да - разумное нет.
Либо массив должен быть статическим атрибутом класса, либо отдельным классом.
Вы хотите иметь только один массив, иначе удаление одного бара означало бы модификации всех экземпляров панели.

+0

Resaon, почему я делал это, было держать все имена и местоположения бара. Есть ли способ создать объект из динамического имени панели? Например. Если я хочу, чтобы имя объекта было именем панели, а имя - из текстового поля или списка, оно не нравится. Например, barlist item.text = new barlist() doedsn't work – user1158745

0

Согласно комментарию, именно то, что вы хотите, сбивает с толку. Я ДУМАЮ, что вы хотите, чтобы иметь возможность ссылаться на список баров в качестве члена какой-либо одной бары. Это достаточно просто; что вы хотите статический член:

public class barlist 
{ 
    ... 

    public static List<barlist> listOfBars; 
} 

Затем вы можете создать бары и добавить их в список:

var bar = new barlist(); 
barlist.listOfBars.Add(bar); 

Вы можете сделать свой класс «barlist» появляются в быть коллекции вместо metrely с коллекцией, реализующей интерфейс IList, который обеспечивает реализацию методов добавления, удаления и доступа к барам в Списке. Вы можете просто «передать» эти вызовы в частный список, и если вы хотите, чтобы какой-либо объект имел один и тот же список, сделайте этот список статическим.

0

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

  1. ArrayList < - это ручка Differents типов объектов
  2. List<barlist> < ---- это обрабатывать только объекты из класса barlist
  3. barList[] blah = new barList[10] ; < --- определить массив 10 элемент класса barList
0

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

Eg (на код)

public class barlist 
{ 
    private string barName; 
    private string barLocation; 
    public static List<barlist> myBarArray = new List<barlist>(); 
    public string Name 
    { 
     get { return barName; } 
     set { barName = value; } 
    } 
    public barlist() 
    { 
     myBarArray.Add(this); 
    } 
    public string Location 
    { 
     get { return barLocation; } 
     set { barLocation = value; } 
    } 
} 

Теперь каждый раз, когда вы создаете объект barlist, объект будет добавлен в список.

После этого вы можете получить доступ к каждому barlist barName и barLocation.

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