我在使用C#编程后,在C上编程。所以我使用了很多常量,如“DEFAULT_USER_ID”,“REMOTE_ADDRESS”等...
在我看来,使用这些常量非常“老式”,也许还有一些其他更优雅的方法可以在对象之间使用一些常量数据。
关于如何优雅地完成这项工作的任何想法?
感谢。
答案 0 :(得分:4)
对DEFAULT_USER_ID
这样的东西使用常量仍然是“要走的路”(除非你希望它是可配置的,但这是另一个话题)。 - > const (C# Reference)
不要将常量用于枚举(FILE_TYPE_DOC = 1
,FILE_TYPE_XLS = 2
,...)。使用enums C#可以更优雅地完成此操作:
enum FileType {
Doc,
Xls, // or, optionally, "Xls = 2".
...
};
你也可以将它用于标志(由按位运算符组合的常量),这是C中常量的另一个常见用例:
[Flags]
enum FontDecoration {
None = 0,
Bold = 1,
Italic = 2,
Underline = 4
}
答案 1 :(得分:2)
static readonly
字段而不是const
。enum
而不是几个整数常量。答案 2 :(得分:1)
例如,您可以为App类
使用静态或只读属性class MyClass {
public static readonly int myVal=10;
}
答案 3 :(得分:1)
你也可以定义这样的常量
public static class Defaults
{
public const string MyName = "SuperName";
}
public class MyClass
{
string s = Defaults.MyName;
}
在这种情况下,您可以在应用中的任何位置使用类默认值
您也可能想知道在Static readonly vs const
中有两种定义常量变量的方法答案 4 :(得分:1)
另一种方法是在.config文件中存储常量值,这样您就不需要重新编译应用程序以在需要时更改值。根据代码的部署方式,将设置公开为纯文本可能适合也可能不适合。有关使用.config文件的简单示例,请参阅此文章:http://www.developer.com/net/net/article.php/3396111/Using-Application-Configuration-Files-in-NET.htm
答案 5 :(得分:0)
您可以随时使用自定义枚举,以便获得Visual Studio Intellisense。
答案 6 :(得分:0)
配置文件怎么样?你们不在C#中使用配置文件? DEFAULT_USER_ID和REMOTE_ADDRESS看起来非常适合放在配置文件中