S
以下和的声明有什么区别F
?
type
TMyClass = class(TObject)
private
S: String;
private var
F: String;
end;
我问的原因是因为我可以使用与(不添加关键字)S
相同的方式。F
var
他们的待遇不同吗?
完全没有区别。根据文档:
var 关键字是可选的。但是,如果不使用它,则所有字段声明都必须出现在任何属性或方法声明之前。在任何属性或方法声明之后,var 可用于引入任何额外的字段声明。
它们都是具有相同可见性的字段。
var
当您在其他声明之后(如常量、内部类型甚至在方法和属性之后)声明字段时,有时需要该关键字。
例如:
type
TMyClass = class
private
FSomeField: string; //<--- this is a field, here you don't need the var clause
const
SOME_CONSTANT = 1;
OTHER_CONSTANT = 2;
var //<---- here you need the var clause to start declaring fields
FSomeOtherField: string;
end;
var
第二种情况下需要该FSomeOtherField
字段(支持嵌套类型或常量。