Вы можете использовать переменную readonly
.Его можно инициализировать во время объявления и изменить в конструкторе, но больше нигде.И это относится только к полям, а не к локальным переменным.
private readonly string filename = "WR" + DateTime.Now.ToString("M_dd_yyyy") + ".xls";
Что касается того, почему вы не можете использовать const
таким образом - С MSDN :
Постоянное выражение - это выражение, которое может быть полностью оценено во время компиляции.
И, конечно, DateTime.Now
, не может быть.