Вопрос по компиляции readonly-переменных

Обсуждение Stimulsoft Reports.NET
Ответить
eLVik
Сообщения: 54
Зарегистрирован: 26 окт 2010, 07:45
Откуда: Сыктывкар, Республика Коми

Вопрос по компиляции readonly-переменных

Сообщение eLVik »

Здравствуйте.
Для расчетов понадобилась константа типа DateTime. Создал в словаре переменную MyDate с флагом "Только чтение" и задал значение, затем перешел на вкладку "Код".

Код: Выделить всё

        public virtual DateTime MyDate
        {
            get
            {
                return ParseDateTime("1/1/1900 12:00:00 AM");
            }
        }
Почему переменная, предназначенная только для чтения, компилируется в виртуальное свойство, а внутри применяется относительно тяжелый ParseDateTime?
Если переменная не отмечена флагом "Только чтение", то для нее создается публичное поле.

Предлагаю следующую оптимизацию. Поля с флагом "Только чтение" генерировать с ключевым словом C# readonly или const.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по компиляции readonly-переменных

Сообщение HighAley »

Здравствуйте.

Описание свойства "Только чтение" находится в разделе "4.2 Переменные".
Данное свойство создано не для хранения констант, а для создания вычисляемых полей. Например, данное свойство необходимо установить, если вы используете в выражении переменной поле из источника данных.

Свойство
eLVik
Сообщения: 54
Зарегистрирован: 26 окт 2010, 07:45
Откуда: Сыктывкар, Республика Коми

Re: Вопрос по компиляции readonly-переменных

Сообщение eLVik »

Здравствуйте.

Цитирую документацию:
> Параметр Только чтение (Read Only) устанавливает режим только чтения, т.е. в данном
> случае будет возвращаться значение хранимое в переменной и изменить его пользователь не
> сможет. При этом,если значение инициализируется как выражение, то в момент обращения к
> нашей переменной, выражение будет вычисляться каждый раз заново.

А если его инициализировать как значение, то зачем его каждый раз вычислять?

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Вопрос по компиляции readonly-переменных

Сообщение HighAley »

Здравствуйте.
eLVik писал(а):Цитирую документацию:
> Параметр Только чтение (Read Only) устанавливает режим только чтения, т.е. в данном
> случае будет возвращаться значение хранимое в переменной и изменить его пользователь не
> сможет. При этом,если значение инициализируется как выражение, то в момент обращения к
> нашей переменной, выражение будет вычисляться каждый раз заново.

А если его инициализировать как значение, то зачем его каждый раз вычислять?
Данная функциональность изменяться не будет. Вы можете создать константу во вкладке код и потом использовать её в отчёте.

Спасибо.
Ответить