我正在 C# 中处理一个对象,我需要该对象的每个实例都有一个唯一的 id。我的解决方案只是在类中放置一个名为 idCount 的成员变量,并在构造函数中放置:
objectID = idCount;
idCount++;
我认为这可以解决我的问题,但似乎 idCount 永远不会增加,即使构造函数被多次调用。例如,如果 idCount = 1,则所有对象的 objectID 仍为 1。为什么 idCount++ 不起作用?
任何帮助,将不胜感激。如果我的解释不够充分,我很抱歉,我不知道还能如何解释。
您的类中需要一个静态属性,但是,如果您希望每个对象都包含其创建时使用的 id,则需要将其分配给类中的实例变量。
另外,如果您同时更新多个实例,您将需要在计数器上使用 Interlocked.Increment :
public class Foo
{
private static int m_Counter = 0;
public int Id { get; set; }
public Foo()
{
this.Id = System.Threading.Interlocked.Increment(ref m_Counter);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)