MSDN说: “Is运算符确定两个对象引用是否引用同一对象。但是,它不执行值比较。如果object1和object2都引用完全相同的对象实例,则结果为True;如果不引用,则结果为False。 “
那么为什么这段代码返回True或False取决于更改了secondPerson.FirstName属性?
Public Class Person
Implements Global.System.ICloneable
Property FirstName As String
Property LastName As String
Public Function Clone() As Object Implements Global.System.ICloneable.Clone
Return Me.MemberwiseClone
End Function
End Class
Module Module1
Sub Main()
Dim firstPerson As New Person
firstPerson.FirstName = "Alessandro"
firstPerson.LastName = "Del Sole"
Dim secondPerson As Person = CType(firstPerson.Clone, Person)
Console.WriteLine(firstPerson.FirstName Is secondPerson.FirstName)'return True
secondPerson.FirstName = "SomeValue"
Console.WriteLine(firstPerson.FirstName Is secondPerson.FirstName)'return False
Console.ReadLine()
End Sub
End Module