代码之家  ›  专栏  ›  技术社区  ›  jdelator

何时使用属性与方法?[副本]

  •  11
  • jdelator  · 技术社区  · 16 年前

    可能重复:
    Properties vs Methods

    我希望你们在决定两者之间的关系时能记住一些规则。

    7 回复  |  直到 9 年前
        1
  •  12
  •   cletus    16 年前

    副作用 . 如果通过调用一个成员来获取一个值,您只能获取该值,它是一个属性。如果有副作用,它可能是一种方法。

    换句话说:属性即使不是字段,其行为也应该非常类似于字段。这意味着不会产生副作用,不会花费太长时间执行,也不会引发异常。

        2
  •  6
  •   brian chandley    16 年前

    这来自msdn:“财产使用指南” http://msdn.microsoft.com/en-us/library/bzwdh01d(VS.71).aspx 请参阅“属性与方法”部分:

    • 这个操作非常昂贵,以至于你想和用户交流他们应该考虑缓存结果。
    • 连续两次调用成员会产生不同的结果。
    • 执行顺序很重要。请注意,类型的属性应该能够以任何顺序设置和检索。
    • 该成员返回一个数组。返回数组的属性可能会产生误导。通常需要返回内部数组的副本,以便用户无法更改内部状态。这一点,再加上用户可以很容易地假设它是一个索引属性,导致代码效率低下。在下面的代码示例中,对Methods属性的每次调用都会创建数组的副本。因此,将在以下循环中创建阵列的2n+1个副本。
        3
  •  2
  •   Community Mohan Dere    9 年前

    我会看一看 this 因此,在属性和方法上发表文章。
    它提到要看看 Choosing Between Properties and Methods

        4
  •  1
  •   Michael Buen    16 年前

    这一点最为突出 when to use a method

    您希望与用户通信 他们应该考虑缓存 结果。

    请注意.NET的DateTime.Now虽然速度很快,而且是一个属性,但当它在程序中多次调用时,需要对其进行缓存,即使是在彼此接近的地方。他们决定把它变成一处房产,房产给人一种 电流 在它中,与调用方法不同,它没有 瞬时/电流 在里面。所以你需要考虑到,即使你得到一个值,需要缓存,但如果它需要感觉 瞬间

    毕竟,如果某个东西真的很快,而且感觉不象是一个昂贵的操作,那么它必须有一个能够传达其快速性的结构。我认为这就是为什么.NET(或任何具有属性构造的语言)很有吸引力的原因,当您可以将方法设置为属性时,它不会强制开发人员使用方法,当您可以围绕重载运算符生成性能良好的代码时,它也不会强制开发人员使用方法,这是最实用的编程

        5
  •  0
  •   Zied    16 年前

    在我看来,这通常是一个常识问题。

    这些属性与它自身的对象/类相关,并且通常描述它。最好的例子是UI元素、背景、颜色、属性。

    这些方法通常是对象/类可以执行并产生结果的操作。这里最好的例子是MessageBox的方法。它执行一个操作并返回一个结果。

        6
  •  0
  •   Cyril Gupta    16 年前

    在基本层面上,选择属性或方法的决定取决于“has”、“does”参数。如果您需要的信息是属性或质量,请使用属性。如果它是一个动作,那么方法。

    但在实际层面上,一直以这种方式实施可能很困难。

    • 如果信息依赖于构造函数中调用的某些初始化代码,那么您应该更喜欢属性。
    • 如果您的信息需要大量操作,请使用方法。
    • 如果它影响第三个元素,如文件、屏幕或其他,请使用方法。
    • 不能有不返回任何内容的属性(void)。
        7
  •  0
  •   avpaderno    15 年前

    用基本的话来说,属性描述对象,而方法是对象可以执行的操作。 对于表示汽车的对象, drive() 将是一种方法,并且 color

    推荐文章