就像这样。public string AA
{
get { return a();} ;
}public string a()
{
return "Hello World.";
}
直接调用 a() 可以得到值,用 AA 也可以得到值。用AA有什么好处吗?谢谢。
{
get { return a();} ;
}public string a()
{
return "Hello World.";
}
直接调用 a() 可以得到值,用 AA 也可以得到值。用AA有什么好处吗?谢谢。
{
get { return a();} ;
}public string a()
{
return "Hello World.";
}
楼主这样,可以把方法弄成私有成员,在类的内部封装起来,不对外,
属性的实质是方法(get和set方法),数据安全
如果你不想让调用者认为这是一个Method,而希望他们当作Property来使用(也就是说只关注结果),
那你就这样写;当然如果乱用的话,会破坏语义或者说逻辑表述举个例子:
如果定义数据连接字符串:string Conn
而Conn又是从配置里读出来的,方法叫做: string GetConn()
开发人员逻辑是:“最好你就给我一个值就行了,别让我调来调去的了”
于是你把GetConn()封装成属性,使用会方便点,也更符合逻辑表示
要实现这个机制并不困难。你可以调用一个方法就可以完成,但是是啥方法呢,你写的是xxx(),我写的是yyyy(),你的代码和我的代码并不一样。那么聪明的程序员们就想了,既然功能都一样为啥不用统一的调用机制,于是他们就规定了一套方法命名标准最早是属性就像lz所想的,他不过是一套方法的命名规定,比如delphi的属性这这样的TsomeObj=classPrivateFCount:integer;ProtectedProcedure SetCount(value:Integer);publishedProperty count:integer read FCount write SetCount default 0;//属性定义End;你看到了吗?他实际就是lz认为的那种方法调用但是这种方式使用起来太麻烦了,所以后来的程序员在编译器上玩起了语法糖,最终成了我们现在看到的 pubic int count{set;get;}(这种方式比早先那种方式简化了无数倍了,看着简单明了,不会头痛)