我知道这已被问过很多,但仅限于C/C++和Java.问题与使用常量表达式的性能优势有关:
当我调用只有常量作为参数的静态函数时,有没有办法告诉编译器它应该在编译时评估调用并用结果替换调用?
例:
const double pi = Math.PI; //works as Math.PI is a constant
const double spi = Math.Sin(Math.PI); //compiler error, because expression must be constant
Run Code Online (Sandbox Code Playgroud)
是否没有指令(更好:属性)明确地告诉编译器像Math.Sin()这样的静态方法没有在内部修改或读取任何数据,因此在技术上可以在编译时评估调用?
哦,请不要回答像"只是做const double spi = 0":),因为我的例子只是我所遇到的问题的简化版本:在保持最高性能的同时提高代码可维护性.
感谢您的帮助 - 非常感谢!