使用常量与文字时有什么好的做法?
What is a good practice when using constants versus literals?
我正在编写一个应用程序,我想确保在常量和文字方面有一个良好的编码标准。问题是,我不完全确定我应该在哪里使用常量,以及在哪里使用常量太过火了!例如...
public class MyWindow : Window
{
public const string WindowTitle = "This seems like overkill!";
public MyWindow() : base()
{
this.Title = WindowTitle;
}
}
所以我的问题是,决定什么应该声明为常量、什么不应该声明的最 widely-accepted 标准是什么?我猜只在一个地方使用的任何东西都应该是文字(例如 window 的标题),而多次使用的任何东西应该是常量?
const
字段存储在程序集元数据中。当您在其他一些程序集中引用该程序集时,const
字段的 VALUES 会直接复制到引用程序集中。
因此,如果您决定更改 const
字段,则必须重新编译所有引用它的程序集才能看到更改。
例如,如果在 Assembly1 中您有:
public class Class1
{
public const string ConstString = "Const";
}
并在 Assembly2 中引用它:
class Class2
{
void DoSomething()
{
Console.WriteLine(Class1.ConstString);
}
}
Class1.ConstString
将在编译时替换为常量 ("Const"
) 的值。
常量是指常量变量,帮助编译器进行优化,帮助程序员不改变不应该改变的东西。
由于没有关于此主题的广泛使用的规范,因此您可以自行决定编写代码的完美程度和项目的规模。我会说最好的做法是尽可能使用 const
。无论如何,通常不会经常发生真正成为问题的情况,并且从编程风格的角度来看,这是编写好的代码的好习惯。
我正在编写一个应用程序,我想确保在常量和文字方面有一个良好的编码标准。问题是,我不完全确定我应该在哪里使用常量,以及在哪里使用常量太过火了!例如...
public class MyWindow : Window
{
public const string WindowTitle = "This seems like overkill!";
public MyWindow() : base()
{
this.Title = WindowTitle;
}
}
所以我的问题是,决定什么应该声明为常量、什么不应该声明的最 widely-accepted 标准是什么?我猜只在一个地方使用的任何东西都应该是文字(例如 window 的标题),而多次使用的任何东西应该是常量?
const
字段存储在程序集元数据中。当您在其他一些程序集中引用该程序集时,const
字段的 VALUES 会直接复制到引用程序集中。
因此,如果您决定更改 const
字段,则必须重新编译所有引用它的程序集才能看到更改。
例如,如果在 Assembly1 中您有:
public class Class1
{
public const string ConstString = "Const";
}
并在 Assembly2 中引用它:
class Class2
{
void DoSomething()
{
Console.WriteLine(Class1.ConstString);
}
}
Class1.ConstString
将在编译时替换为常量 ("Const"
) 的值。
常量是指常量变量,帮助编译器进行优化,帮助程序员不改变不应该改变的东西。
由于没有关于此主题的广泛使用的规范,因此您可以自行决定编写代码的完美程度和项目的规模。我会说最好的做法是尽可能使用 const
。无论如何,通常不会经常发生真正成为问题的情况,并且从编程风格的角度来看,这是编写好的代码的好习惯。