const
- ключевое слово времени компиляции, которое заменит все ссылки на вашу переменную const жестко закодированным значением в скомпилированном коде
public class MyClass
{
private const int MyNumber = 2;
public void MyMethod()
{
Console.WriteLine(MyNumber);
}
}
Когда это скомпилируется, результирующий код выглядит следующим образом
public class MyClass
{
public void MyMethod()
{
Console.WriteLine(2);
}
}
Он будет скомпилирован в IL, но вы получите точку.
Это означает, что вы можете помечать вещи как константы, которые известны при компиляции и являются примитивными объектами C #, например string, int, decimal и т. д.
readonly в настоящее время, к сожалению, не разрешен для переменных.Однако есть разговоры о том, чтобы сделать это возможным https://www.infoq.com/news/2017/04/CSharp-Readonly-Locals