结构没有身份时意味着什么?

时间:2009-04-27 10:09:03

标签: c#

我在这里读了几个关于结构的线程(一个关于可变结构)并且我一直在阅读结构应该如何没有标识。

结构中缺少什么样的身份?我猜它会像一个数字,例如5,没有上下文(5什么?)。客户是期待服务的人,因此有一个身份。我的想法是否正确?

我知道技术差异以及结构如何是线程安全的(只要它们不能被变异,但我仍然可以编写变异状态的方法),每次将它们传递给方法时都会有新副本等。 ..

3 个答案:

答案 0 :(得分:9)

这意味着关于结构的唯一数据是值是存储 - 一个“5”和另一个“5”之间没有区别。将其与班级进行比较:

Person person1 = new Person("Jon");
Person person2 = new Person("Jon");
Person person3 = person2;

现在person1person2引用了不同的对象,尽管它们都包含相同的数据。 person2person3都指向相同的对象。结构,这种区别不存在。

答案 1 :(得分:2)

Struct是一种值类型,因此它只表示一个值。 Id只对创建对它的引用很有用,在这种情况下最好不要成为一个类。

答案 2 :(得分:0)

我猜你或多或少受Evans' book的影响,在那里他区分了实体和价值对象。