0

这里是非常基本的问题,请查看我的客户类中的属性Order。想知道像这样的属性类型的正式名称是什么(是的,这也可能是一个列表)。

public class Customer
{
    public int ID { get; set; }
    public string Name { get; set; }

    public Order Orders { get; set; }  // what am i called?
}

public class Order
{
    public int ID { get; set; }
    public string SomeProperty { get; set; }
}
4

5 回答 5

4

这是同一件事。它被称为“财产”。它没有不同的名称。考虑你的SomePropertywhich 是 type stringstring也是一个类并且SomeProperty是它的对象。与您的班级相同的约定也将遵循。

来自C# 语言规范。

1.6.7.2 属性

属性被声明为像字段一样,除了声明以 get 访问器和/或 set 访问器结尾,它们写在分隔符 { 和 } 之间,而不是以分号结尾。

因此,C# 中的术语“属性”与访问器(get/set)相关联

于 2013-10-03T19:02:47.693 回答
2

来自ECMA-334 8.7.4:

属性是提供对对象或类的特征的访问的成员。

属性访问的类型无关紧要。该属性本身只是为了提供对它的访问。

所以,归根结底,一个属性是一个属性,不管它访问什么类型。

于 2013-10-03T19:07:12.797 回答
1

这个概念本身被称为组合。基本上,您希望能够使用 Customer 对象来获取有关订单的信息,但您不希望获取该信息的逻辑存在于 Customer 中。因此,您有一个 Order 成员,并且 Order 封装了 Order 行为。

您可以说 Customer 由 Order 和其他值组成。

有链接:http ://www.javaworld.com/jw-11-1998/jw-11-techniques.html

不是你问这个,但你可能会想要一个实际的订单集合。你可以从
public List<Order> Orders;

于 2013-10-03T19:26:36.777 回答
1

它只是一个属性——它没有正式的名称。

于 2013-10-03T19:03:03.553 回答
0

它仍然是一个财产。它只是获取/设置一个对象,它是一个类的实例。

于 2013-10-03T19:06:06.950 回答