gpt4 book ai didi

c# - 创建一个C#方法来生成自增Id

转载 作者:行者123 更新时间:2023-12-05 08:15:25 25 4
gpt4 key购买 nike

我是编程新手,我正在尝试创建一个返回自动递增 ID 的函数,但没有成功,但是代码无法正常工作,我确定缺少某些东西,即使我不明白它是什么.这里的代码,它是为了创建一个函数,每次调用它都会创建一个自动递增的 id,就像它在 SQL 上一样(主键):

class Program
{
static void Main(string[] args)
{
string[] dataInsert = new string[10];

for(int i = 0; i < dataInsert.Length; i++)
{
dataInsert[i] = Convert.ToString(generateId());
}

for (int i = 0; i < dataInsert.Length; i++)
{
Console.WriteLine(dataInsert[i]);
}

Console.ReadKey();
}
static int generateId()
{
int id = 1;
return id += 1;
}
}

最佳答案

改变

static int generateId()
{
int id = 1; //This resets the value to 1 every time you enter.
return id+= 1;
}

收件人:

private static int id = 1;
static int generateId()
{
return id++;
}

您的 generateId 将始终返回 2,因为您传递的是本地值,每次输入时都将其初始化为 1。在我的示例中,Id 将在应用程序运行时设置为 1,然后递增。不过,它总是从 1 开始。

增加对局部变量、字段变量、静态变量的解释。

当你像你一样定义一个变量时,一个局部变量,它只存在于方法的范围内,每次调用方法时都会重新初始化。

您还可以定义只要对象实例存在就会存在的字段变量。例如:

public class AutoIncrment
{
private int id = 1;
public int GenerateId()
{
return id++;
}
}

你可以这样使用它:

var idState = new AutoIncrement();

console.WriteLine(idState.GenerateId()); // Outputs 1
console.WriteLine(idState.GenerateId()); // Outputs 2
console.WriteLine(idState.GenerateId()); // Outputs 3
console.WriteLine(idState.GenerateId()); // Outputs 4 .. And so on

var idState2 = new AutoIncrement(); // Create a new instance and it starts over

console.WriteLine(idState2.GenerateId()); // Outputs 1
console.WriteLine(idState2.GenerateId()); // Outputs 2 .. And so on
// Go back to idState object and it will keep going from where you last left off
console.WriteLine(idState.GenerateId()); // Outputs 5

然后是静态变量,就像我在顶部的回答中那样。它们作为类本身的一部分存在。由于类在程序运行时一直存在,所以变量也存在于内存中。

关于c# - 创建一个C#方法来生成自增Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641722/

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