Страница 10 из 19 Поля классов В Delphi для того, чтобы реализовать концепцию , можно использовать свойства (properties), при этом приходится писать нечтоподобное: type TMyObject = class private fData: integer public // эквивалент поля для чтения property Data: integer read fData; end;
Поля в C# введены на уровне языка: class A { public readonly int Data; }
Разница между (статическими) константами и полями заключается в том, что если константы могут бытьвычислены на стадии компиляции, что справедливо, например, для простых типов,то значения полей определяются только на стадиивыполнения программы. Это приводит к интересным последствиям. В стандарте C# рассматриваетсяситуация, когда имеется библиотека и использующая ее программа, компилируемыераздельно. Если в библиотеке использовать константу, то при изменении еезначения (и перекомпиляции библиотеки) нужно перекомпилировать и программу.Если же использовать поле , то программуперекомпилировать не обязательно, т.к. значение поля определяется на стадииисполнения. |