Как отслеживать объекты с тем же именем - PullRequest
0 голосов
/ 17 января 2012

Если в случае наличия трех или более объектов класса, например, три экземпляра Class1 с именем Class1Object. Как вы могли бы отслеживать все это простым способом?

например. например, я хотел сделать Show.Form для секундного экземпляра / объекта класса

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Экземпляры объектов не называются таковыми.Вы ссылаетесь на имя переменной, которую вы использовали три раза?Если это так, и вам нужен доступ к каждому экземпляру, вам нужно использовать три разные переменные или какой-то тип коллекции / массива.

2 голосов
/ 17 января 2012

"Именовано" на каком уровне?

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

Class1 firstClass; Class2 secondClass;

Хотя я бы не использовал first или second, но что-то, связанное с причиной их наличия, существует в первую очередь. Также как int id и int numberOfFailedAttempts не запутайтесь.

Абсолютно последнее, что я бы назвал объектом типа Class1, это Class1Object. Я уже знаю, что это объект Class1, так что это имя дает мне нулевую информацию. Это все равно что называть собаку "собакой" без спасительной грации быть смешной.

Если бы я поместил их в коллекцию, то я бы индексировал их численно каким-либо способом, который имеет смысл, или с некоторым другим значением, которое имеет смысл.

В общем, я собираюсь называть вещи разумно в соответствии с тем, что я делаю, а не произвольно, а затем изо всех сил стараюсь справиться с навязанным самим себе недостатком разумных имен.

1 голос
/ 17 января 2012

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

Если вам нужно несколько экземпляров класса, я бы предложил один из типов коллекций, а не три отдельные переменные для них:

// If you don't need anything other than an index
var objects = new List<Class1> { new Class1(), new Class1(), new Class1() };

// Collection keyed by a string
var objects = new Dictionary<string, Class1>
{
    { "Class1Object1", new Class1() },
    { "Class1Object2", new Class1() },
    { "Class1Object3", new Class1() }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...