Encoding::Equals Method (Object^)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Determines whether the specified Object is equal to the current instance.

Namespace:   System.Text
Assembly:  mscorlib (in mscorlib.dll)

virtual bool Equals(
	Object^ value
) override


Type: System::Object^

The Object to compare with the current instance.

Return Value

Type: System::Boolean

true if value is an instance of Encoding and is equal to the current instance; otherwise, false.

Two instances of Encoding are considered equal if they correspond to the same code page and their EncoderFallback and DecoderFallback objects are equal. In particular, derived code pages all have a code page of 0 and their fallbacks are normally null (Nothing in Visual Basic .NET). Thus they are all considered equal to one another. One consequence is that when Equals is used to populate a hash table, all derived encodings compare equal and fall into the same hash table slot.

The following example gets two instances of the same encoding (one by codepage and another by name), and checks their equality.

using namespace System;
using namespace System::Text;
int main()

   // Get a UTF-32 encoding by codepage.
   Encoding^ e1 = Encoding::GetEncoding( 12000 );

   // Get a UTF-32 encoding by name.
   Encoding^ e2 = Encoding::GetEncoding( "utf-32" );

   // Check their equality.
   Console::WriteLine( "e1 equals e2? {0}", e1->Equals( e2 ) );

This code produces the following output.

e1 equals e2? True


Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top