我在这里读了几个关于结构的线程(一个关于可变结构)并且我一直在阅读结构应该如何没有标识。
结构中缺少什么样的身份?我猜它会像一个数字,例如5,没有上下文(5什么?)。客户是期待服务的人,因此有一个身份。我的想法是否正确?
我知道技术差异以及结构如何是线程安全的(只要它们不能被变异,但我仍然可以编写变异状态的方法),每次将它们传递给方法时都会有新副本等。 ..
答案 0 :(得分:9)
这意味着关于结构的唯一数据是值是存储 - 一个“5”和另一个“5”之间没有区别。将其与班级进行比较:
Person person1 = new Person("Jon");
Person person2 = new Person("Jon");
Person person3 = person2;
现在person1
和person2
引用了不同的对象,尽管它们都包含相同的数据。 person2
和person3
都指向相同的对象。结构,这种区别不存在。
答案 1 :(得分:2)
Struct是一种值类型,因此它只表示一个值。 Id只对创建对它的引用很有用,在这种情况下最好不要成为一个类。
答案 2 :(得分:0)
我猜你或多或少受Evans' book的影响,在那里他区分了实体和价值对象。