【发布时间】:2013-06-02 21:24:16
【问题描述】:
当.GetType()方法被一个对象调用时,C#如何知道它的类型?如果对象与同一项目中的某些其他对象类型相同怎么办?它们是否具有某种独特的标识(如 GUID)?
【问题讨论】:
-
不一样的名字意味着它是一个不同的类型。
-
那么它在不同的程序集中,是不同的类型。
-
@user1306322 类型名称无关紧要 - 它是对象本身的完整 Type,它始终是唯一的,因为它固有地包含程序集信息。
-
你的第二个问题是无稽之谈;如果你有 两个 的东西彼此 相同 那么你实际上只有 一个 的东西。这就是相同的意思;这意味着两个事物具有相同的身份,因此是相同的事物。 “同卵双胞胎”真的应该叫“同卵双胞胎”;他们不共享身份。
-
@EricLippert OP 显然没有意识到所有对象实例都存储有关其类型的信息,而只是存储它们的成员,因此他(错误地)假设两个对象实例具有相同的字段,甚至如果他们来自不同的班级,看起来真的会一样。 C# 如何通过专门存储有关每个实例与该对象数据的类的信息来解决这个问题。这就是 OP 的“缺失的部分”。
标签: c# types gettype object-type