Noe*_*mer 6 c# performance literals
很短的问题,但我现在无法在网上找到解决方案.
int test = 1 + 2;
Run Code Online (Sandbox Code Playgroud)
将1 + 2在运行或编译时执行?
问的理由:我认为大多数人有时会使用文字而没有说明为什么使用它或它意味着什么,因为他们不想通过运行计算浪费一点性能,我相信计算在编译期间发生并且对性能:
int nbr = 31536000; //What the heck is that?
Run Code Online (Sandbox Code Playgroud)
代替
int nbr = 365 * 24 * 60 * 60; //I guess you know what nbr is supposed to be now...
Run Code Online (Sandbox Code Playgroud)
由于您的示例本质上是常量表达式(即它们仅包含常量或这样评估的结构),因此它们将在编译时评估。
\n\n\n\n\n常量表达式是可以在编译时完全求值的表达式。
\n\n常量表达式的类型可以是以下类型之一:sbyte、byte、short、ushort、\n int、uint、long、ulong、char、float、double、decimal、bool、string、\n 任何枚举类型,或者空类型。
\n
常量表达式中允许使用以下结构:
\n\n+、\xe2\x80\x93、!和~一元运算符。+、\xe2\x80\x93、*、/、%、<<、>>、&、|、^、&&、||、==、!=、<、>、<=和>=二元运算符,前提是每个操作数属于上面列出的类型。?:运算符。