Updated: September 2010
Determines whether the specified Object instances are the same instance.
Assembly: mscorlib (in mscorlib.dll)
Public Shared Function ReferenceEquals ( _ objA As Object, _ objB As Object _ ) As Boolean
public static bool ReferenceEquals( Object objA, Object objB )
public: static bool ReferenceEquals( Object^ objA, Object^ objB )
static member ReferenceEquals : objA:Object * objB:Object -> bool
Parameters
- objA
- Type: System.Object
The first object to compare.
- objB
- Type: System.Object
The second object to compare.
Return Value
Type: System.Booleantrue if objA is the same instance as objB or if both are null; otherwise, false.
Unlike the Equals method and the equality operator, the ReferenceEquals method cannot be overridden. Because of this, if you want to test two object references for equality and are unsure about the implementation of the Equals method, you can call the ReferenceEquals method. However, note that if objA and objB are value types, they are boxed before they are passed to the ReferenceEquals method.
The following example uses ReferenceEquals to determine if two objects are the same instance.
Imports System Public Class App Public Shared Sub Main() Dim o As Object = Nothing Dim p As Object = Nothing Dim q As New Object Console.WriteLine(Object.ReferenceEquals(o, p)) p = q Console.WriteLine(Object.ReferenceEquals(p, q)) Console.WriteLine(Object.ReferenceEquals(o, p)) End Sub End Class ' This code produces the following output: ' ' True ' True ' False '
using System; class MyClass { static void Main() { object o = null; object p = null; object q = new Object(); Console.WriteLine(Object.ReferenceEquals(o, p)); p = q; Console.WriteLine(Object.ReferenceEquals(p, q)); Console.WriteLine(Object.ReferenceEquals(o, p)); } } /* This code produces the following output. True True False */
using namespace System; int main() { Object^ o = nullptr; Object^ p = nullptr; Object^ q = gcnew Object; Console::WriteLine( Object::ReferenceEquals( o, p ) ); p = q; Console::WriteLine( Object::ReferenceEquals( p, q ) ); Console::WriteLine( Object::ReferenceEquals( o, p ) ); } /* This code produces the following output. True True False */
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Portable Class Library
Supported in: Portable Class LibraryWindows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Reference
|
Date |
History |
Reason |
|---|---|---|
|
September 2010 |
Added the Remarks section. |
Customer feedback. |