关于常数的一般CS问题

在使用C编程之后,我正在使用C#进行编程。所以我使用了很多常量,例如“DEFAULT_USER_ID”,“REMOTE_ADDRESS”等……

在我看来,使用这些常量非常“老式”,也许还有一些其他更优雅的方法可以在对象之间使用一些常量数据。

关于如何优雅地完成这些任何想法?

谢谢。

DEFAULT_USER_ID东西使用常量仍然是“要走的路”(除非你希望它是可配置的,但这是另一个话题)。 – > const(C#参考)

不要将常量用于枚举( FILE_TYPE_DOC = 1FILE_TYPE_XLS = 2 ,…)。 这可以通过枚举在C#中更优雅地完成:

 enum FileType { Doc, Xls, // or, optionally, "Xls = 2". ... }; 

您还可以将此用于标志(按位运算符可组合的常量),这是C中常量的另一个常见用例:

 [Flags] enum FontDecoration { None = 0, Bold = 1, Italic = 2, Underline = 4 } 
  1. 您的命名约定不适合.net。 使用PascalCase而不是SCREAMING_CAPS
  2. 请注意.net 中常量的二进制版本控制语义 。 您可能希望有时使用static readonly字段而不是const
  3. 在概念上它是一个好主意,使用enum而不是几个整数常量。

例如,您可以为App类使用静态或只读属性

 class MyClass { public static readonly int myVal=10; } 

另一种方法是在.config文件中存储常量值,这样您就不需要重新编译应用程序以在需要时更改值。 根据代码的部署方式,将设置公开为纯文本可能适合也可能不适合。 有关使用.config文件的简单示例,请参阅此文章: http : //www.developer.com/net/net/article.php/3396111/Using-Application-Configuration-Files-in-NET.htm

您也可以定义这样的常量

  public static class Defaults { public const string MyName = "SuperName"; } public class MyClass { string s = Defaults.MyName; } 

在这种情况下,您可以在应用中的任何位置使用类默认值

您也可能想知道在Static readonly和const中有两种定义常量变量的方法

配置文件怎么样? 你们不在C#中使用配置文件? DEFAULT_USER_ID和REMOTE_ADDRESS看起来非常适合在配置文件中

您始终可以使用自定义枚举,以便获得Visual Studio Intellisense。