В приложении .NET существует явное различие в производительности между этими двумя способами объявления строкового значения:
const string MyConst = "value";
var MyConst = "value";
Первый (# 1) является объявлением времени компиляции, поэтому при выполнении не происходит потери производительности по сравнению с последним (# 2), который будет выделять и инициализировать объект String
при каждом выполнении строки кода. .
В моем проекте я использую Roslyn для компиляции пользовательских сценариев C # с использованием CSharpCodeProvider.CompileAssemblyFromSource
, извлечения соответствующих методов (MethodInfo
объектов) и хранения их в памяти для последующего вызова по мере необходимости.
У меня вопрос: применяются ли вышеупомянутые различия в производительности в этом случае? const
, static
и другие операторы, которые обычно находятся во время компиляции, все еще ведут себя таким образом, когда скрипт компилируется и выполняется в памяти, как описано выше?