就像这样。public string AA
{
    get { return a();} ;
}public string a()
{
    return "Hello World.";
}
直接调用 a() 可以得到值,用 AA 也可以得到值。用AA有什么好处吗?谢谢。

解决方案 »

  1.   

    http://www.bianceng.cn/cp/c10.htm楼主可以参考一下,public string AA
    {
        get { return a();} ;
    }public string a()
    {
        return "Hello World.";
    }
    楼主这样,可以把方法弄成私有成员,在类的内部封装起来,不对外,
      

  2.   

    尽可能的使用属性(property),而不是数据成员(field)。 
    属性的实质是方法(get和set方法),数据安全
      

  3.   

    谢谢2L的链接,很有用。3L的疑问我也一样疑问。4L的意思是,如果能把方法转为属性,就尽量转,用属性比用方法安全,是吗?方法为什么不安全呢?
      

  4.   

    4楼5楼答非所问,楼主:这要看你想达到什么目的,
    如果你不想让调用者认为这是一个Method,而希望他们当作Property来使用(也就是说只关注结果),
    那你就这样写;当然如果乱用的话,会破坏语义或者说逻辑表述举个例子:
    如果定义数据连接字符串:string Conn
    而Conn又是从配置里读出来的,方法叫做: string GetConn()
    开发人员逻辑是:“最好你就给我一个值就行了,别让我调来调去的了”
    于是你把GetConn()封装成属性,使用会方便点,也更符合逻辑表示
      

  5.   

    如果一个方法的语义上是GetXXX或者SetXXX,并且没有参数,那么就推荐用属性
      

  6.   

    要分清楚属性的目的属性最早被设计出来的原因是因为 早期的程序员在编写组件的时候,发现组件中实际大量存在这样一种需求。就是更改一个值,会自动引发一些动作或状态更改比如,你把color改成blue,结果控件就立刻就成了blue。
    要实现这个机制并不困难。你可以调用一个方法就可以完成,但是是啥方法呢,你写的是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;}(这种方式比早先那种方式简化了无数倍了,看着简单明了,不会头痛)