gpt4 book ai didi

c# - 管理常量列表

转载 作者:行者123 更新时间:2023-11-30 16:11:51 25 4
gpt4 key购买 nike

在几个项目中,我们在数据库中有一个常量值列表。它们每个都有一个表、名称和一个 GUID 值。例如,工单状态表可能有 3 个值,“打开”、“关闭”和“保留”。在我们的 C# 代码中,一个框架生成一个 C# 文件,如下所示。

public class TicketStatus { 
public static Guid Open = new Guid( "7ae15a71-6514-4559-8ea6-06b9ddc7a59a");
public static Guid Closed = new Guid( "41f81283-57f9-4bda-a03c-f632bd4d1628");
public static Guid Hold = new Guid( "41bcc323-258f-4e58-95be-e995a78d2ca8");
}; // end of TicketStatus

这允许我们编写一些干净的代码来设置票证状态,如下所示ticket.strStatus = TicketStatus.Open.ToString();

虽然这有效:- 它生成非常干净的 C# 代码,易于准备和维护- 智能感知支持

它仍然很笨拙,在那- 对于许多操作,我们必须不断地转换为字符串- 使用 GUID 似乎有点矫枉过正。- 我们不能写一个“正常”的 switch 语句

// This won't compile
switch( strStatus ) {
case TicketStatus.Open:
case TicketStatus.Closed:
// do some stuff.
break;
}

代码最初是用一堆 GUID 实现的,以管理数据库返回全部大写的值的情况。

问题:对这些常量值进行编码以使其支持 IntelliSense 和 switch 语句的最佳方法是什么?

最佳答案

谢谢柯克,这是我正在使用的字符串解决方案。

public static class TicketStatus {
public const string Open = "7ae15a71-6514-4559-8ea6-06b9ddc7a59a";
public const string Closed = "41f81283-57f9-4bda-a03c-f632bd4d1628";
public const string Hold = "41bcc323-258f-4e58-95be-e995a78d2ca8";
}; // end of TicketStatus

string strTemp = TicketStatus.Open;
switch (strTemp) {
case TicketStatus.Open:
strTemp = "Jackpot";
break;
}

关于c# - 管理常量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857861/

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