【发布时间】:2012-12-13 14:41:58
【问题描述】:
我有以下课程:
public class STElement
{
public int _value;
public STElement _next;
public int _index;
public STElement()
{
_value = 0;
_next = null;
_index = 0;
}
}
在程序的运行时我想创建一些像这样的对象:
_rootStack1 = new STElement();
_rootStack2 = new STElement();
_rootStack3 = new STElement();
但我只希望 _rootStack1 具有 _index = 0;
那么我该怎么做,三个对象中只有一个获得_index?
【问题讨论】:
-
不确定我是否跟随,你的意思是每个连续的
_rootStack#都会有一个递增的索引吗?那么_rootStack1._index == 0、_rootStack2._index == 1和_rootStack3._index == 2? -
So how can I do it, that only one of the three objects get _index?你想让其他人没有_index吗? -
你不能确保你只会拥有一个带有
_index == 0的对象。 -
或者您可能希望其他实例根本没有索引字段?然后创建一个没有该字段的基类,并在添加该字段的类中派生它。这样你就会有 _rootStack1 = new STElementWithIndex();其余的将是基类的实例。这就是你想要的吗?
-
@TimKatheteStadler 我认为反对票是因为您的问题太模棱两可/令人困惑。我仍然不确定你在问什么。根据定义,您的类已将所有实例分配给它们 some
_index值;你所说的只是其他两个实例“不应该得到它们”,这没有意义(尤其是当它们都默认分配0时)。我们试图澄清你的思维过程是什么以及你真正想要什么。或许您应该描述一下您要完成的最终任务?
标签: c# class constructor