在.NET应用程序中,这两种声明字符串值的方式之间存在明显的性能差异:
const string MyConst = "value";
var MyConst = "value";
前者(#1)是编译时声明,因此与后者(#2)相比,后者在每次该行代码时都会分配并初始化String
对象,因此在运行时不会造成性能损失被执行。
在我的项目中,我使用Roslyn使用CSharpCodeProvider.CompileAssemblyFromSource
编译用户指定的C#脚本,提取相关方法(MethodInfo
对象)并将其保留在内存中,以便以后根据需要调用。
我的问题是,在这种情况下上述性能差异是否仍然适用?如上所述,在内存中编译和执行脚本时,const
,static
和其他通常在编译时的语句是否仍以这种方式运行?