В чем разница между const и readonly? - PullRequest
1178 голосов
/ 11 сентября 2008

В чем разница между const и readonly и вы используете один над другим?

Ответы [ 32 ]

0 голосов
/ 17 января 2019

Простыми словами Const - время компиляции, а readonly - время выполнения.

0 голосов
/ 16 сентября 2008

Ключевым отличием является то, что Const является эквивалентом C #DEFINE. Число буквально подставляется а-ля прекомпилятором. Readonly фактически рассматривается как переменная.

Это различие особенно актуально, когда у вас есть проект А в зависимости от публичной константы из проекта Б. Предположим, что публичная константа изменяется. Теперь ваш выбор const / readonly повлияет на поведение в проекте A:

Const: проект A не перехватывает новое значение (если, конечно, оно не перекомпилируется с новым const), потому что оно было скомпилировано с подстановочными константами в.

ReadOnly: проект A всегда будет запрашивать значение переменной у проекта B, поэтому он получит новое значение публичной константы в B.

Честно говоря, я бы порекомендовал вам использовать readonly почти для всего, кроме действительно универсальных констант (например, Pi, Inches_To_Centimeters). Для всего, что может измениться, я использую readonly.

Надеюсь, это поможет, Алан.

...