如何跟踪具有相同名称的对象

时间:2012-01-17 15:33:08

标签: c# .net windows

如果有一个类的三个或更多对象,例如Class1的三个实例名为Class1Object。你怎么能以简单的方式跟踪所有这些?

E.g。例如,我想在类

的秒实例/对象上执行Show.Form

3 个答案:

答案 0 :(得分:3)

对象实例未如此命名。你指的是你已经重复使用过三次的变量的名字吗?如果是这样,并且您仍需要访问每个实例,则需要使用三个不同的变量或某种类型的集合/数组类型。

答案 1 :(得分:2)

“命名”在什么级别?

它们在给定方法或类的级别上不能被命名为相同,我将通过我自己命名的变量来操作它们:

Class1 firstClass; Class2 secondClass;

虽然我不会使用firstsecond,但是因为它们首先存在而与之相关。就像int idint numberOfFailedAttempts一样,不要混淆。

我称之为Class1类型的对象的最后一件事是Class1Object。我已经知道它是一个Class1对象,因此该名称向我提供零信息。这就像叫一只狗“狗”,没有保持优雅的风趣。

如果我将它们放入一个集合中,那么我要么以某种有意义的方式对它们进行数字索引,要么使用其他一些有意义的值。

总而言之,我将根据我正在做的事情明智地命名事物,而不是任意地,然后努力处理自我缺乏明智的名字。

答案 2 :(得分:1)

在同一范围内,不能有三个具有相同名称的类实例(假设您指的是变量命名)。

如果你需要一个类的多个实例,我建议使用一个集合类型而不是三个单独的变量:

// 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() }
};