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