gpt4 book ai didi

c# - 在构造函数中递增唯一 ID 号

转载 作者:可可西里 更新时间:2023-11-01 08:53:27 27 4
gpt4 key购买 nike

我正在使用 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);
}
}

关于c# - 在构造函数中递增唯一 ID 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com