Оба могут иметь схожие практические эффекты, но они полезны для сигнализации ваших намерений.
Итак, константное значение - это то, что доступно всем экземплярам вашего класса и никогда не изменится.Readonly сигнализирует о том, что у вас есть значение данных, которое может быть различным для каждого экземпляра вашего класса, но будет неизменным после создания класса.Неизменность может быть действительно полезной гарантией, когда вы делитесь экземпляром класса между разными потребителями.Попутно, в CLR Via C # Рихтер предпочитает общедоступные члены, доступные только для чтения, свойствам, имеющим только общедоступные установщики, мне придется разобраться с этим и напомнить себе, почему.