Int16.Equals Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a value indicating whether this instance is equal to a specified object or Int16.
Overloads
Equals(Int16) |
Returns a value indicating whether this instance is equal to a specified Int16 value. |
Equals(Object) |
Returns a value indicating whether this instance is equal to a specified object. |
Equals(Int16)
- Source:
- Int16.cs
- Source:
- Int16.cs
- Source:
- Int16.cs
Returns a value indicating whether this instance is equal to a specified Int16 value.
public:
virtual bool Equals(short obj);
public bool Equals (short obj);
override this.Equals : int16 -> bool
Public Function Equals (obj As Short) As Boolean
Parameters
Returns
true
if obj
has the same value as this instance; otherwise, false
.
Implements
Remarks
This method implements the System.IEquatable<T> interface, and performs slightly better than Equals because it does not have to convert the obj
parameter to an object.
Notes to Callers
Compiler overload resolution may account for an apparent difference in the behavior of the two Equals(Int16) method overloads. If an implicit conversion between the obj
argument and an Int16 is defined and the argument is not typed as an Object, compilers perform an implicit conversion and call the Equals(Int16) method. Otherwise, they call the Equals(Object) method, which always returns false
if its obj
argument is not an Int16 value. The following example illustrates the difference in behavior between the two method overloads. In the case of the Byte and SByte values, the first comparison returns true
because the compiler automatically performs a widening conversion and calls the Equals(Int16) method, whereas the second comparison returns false
because the compiler calls the Equals(Object) method.
using System;
public class Example
{
static short value = 112;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
TestObjectForEquality(byte1);
int int1 = 112;
Console.WriteLine("value = int1: {0,17}", value.Equals(int1));
TestObjectForEquality(int1);
sbyte sbyte1 = 112;
Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
TestObjectForEquality(sbyte1);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
decimal dec1 = 112m;
Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
TestObjectForEquality(dec1);
double dbl1 = 112;
Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1));
TestObjectForEquality(dbl1);
}
private static void TestObjectForEquality(Object obj)
{
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj));
}
}
// The example displays the following output:
// value = byte1: True
// 112 (Int16) = 112 (Byte): False
//
// value = int1: False
// 112 (Int16) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int16) = 112 (SByte): False
//
// value = ushort1: False
// 112 (Int16) = 112 (UInt16): False
//
// value = dec1: False
// 112 (Int16) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int16) = 112 (Double): False
let value = 112s
let testObjectForEquality (obj: obj) =
printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"
let byte1 = 112uy
printfn $"value = byte1: {value.Equals(int16 byte1),15}"
testObjectForEquality byte1
let int1 = 112
printfn $"value = int1: {value.Equals(int16 int1),17}"
testObjectForEquality int1
let sbyte1 = 112uy
printfn $"value = sbyte1: {value.Equals(int16 sbyte1),15}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int16 ushort1),15}"
testObjectForEquality ushort1
let dec1 = 112M
printfn $"value = dec1: {value.Equals dec1,20}"
testObjectForEquality dec1
let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals dbl1,19}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Int16) = 112 (Byte): False
//
// value = int1: False
// 112 (Int16) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int16) = 112 (SByte): False
//
// value = ushort1: False
// 112 (Int16) = 112 (UInt16): False
//
// value = dec1: False
// 112 (Int16) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int16) = 112 (Double): False
Module Example
Dim value As Int16 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,17}", value.Equals(int1))
TestObjectForEquality(int1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim dec1 As Decimal = 112d
Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1))
TestObjectForEquality(dec1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1))
TestObjectForEquality(dbl1)
End Sub
Private Sub TestObjectForEquality(obj As Object)
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj))
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' value = byte1: True
' 112 (Int16) = 112 (Byte): False
'
' value = int1: False
' 112 (Int16) = 112 (Int32): False
'
' value = sbyte1: True
' 112 (Int16) = 112 (SByte): False
'
' value = ushort1: False
' 112 (Int16) = 112 (UInt16): False
'
' value = dec1: False
' 112 (Int16) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (Int16) = 112 (Double): False
See also
Applies to
Equals(Object)
- Source:
- Int16.cs
- Source:
- Int16.cs
- Source:
- Int16.cs
Returns a value indicating whether this instance is equal to a specified object.
public:
override bool Equals(System::Object ^ obj);
public override bool Equals (object obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean
Parameters
- obj
- Object
An object to compare to this instance.
Returns
true
if obj
is an instance of Int16 and equals the value of this instance; otherwise, false
.
Examples
The following code example illustrates the use of Equals
in the context of Int16
, comparing two short values and returning true
if they represent the same number, or false
if they do not.
Int16 myVariable1 = 20;
Int16 myVariable2 = 20;
// Get and display the declaring type.
Console::WriteLine( "\nType of 'myVariable1' is '{0}' and value is : {1}", myVariable1.GetType(), myVariable1 );
Console::WriteLine( "Type of 'myVariable2' is '{0}' and value is : {1}", myVariable2.GetType(), myVariable2 );
// Compare 'myVariable1' instance with 'myVariable2' Object.
if ( myVariable1.Equals( myVariable2 ) )
Console::WriteLine( "\nStructures 'myVariable1' and 'myVariable2' are equal" );
else
Console::WriteLine( "\nStructures 'myVariable1' and 'myVariable2' are not equal" );
Int16 myVariable1 = 20;
Int16 myVariable2 = 20;
// Get and display the declaring type.
Console.WriteLine("\nType of 'myVariable1' is '{0}' and"+
" value is :{1}",myVariable1.GetType(), myVariable1);
Console.WriteLine("Type of 'myVariable2' is '{0}' and"+
" value is :{1}",myVariable2.GetType(), myVariable2);
// Compare 'myVariable1' instance with 'myVariable2' Object.
if( myVariable1.Equals( myVariable2 ) )
Console.WriteLine( "\nStructures 'myVariable1' and "+
"'myVariable2' are equal");
else
Console.WriteLine( "\nStructures 'myVariable1' and "+
"'myVariable2' are not equal");
let myVariable1 = 20s
let myVariable2 = 20s
// Get and display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is: {myVariable1}"
printfn $"\nType of 'myVariable1' is '{myVariable2.GetType()}' and value is: {myVariable2}"
// Compare 'myVariable1' instance with 'myVariable2' Object.
if myVariable1.Equals myVariable2 then
printfn "\nStructures 'myVariable1' and 'myVariable2' are equal"
else
printfn "\nStructures 'myVariable1' and 'myVariable2' are not equal"
Dim myVariable1 As Int16 = 20
Dim myVariable2 As Int16 = 20
' Get and display the declaring type.
Console.WriteLine(ControlChars.NewLine + "Type of 'myVariable1' is '{0}' and" + _
" value is :{1}", myVariable1.GetType().ToString(), myVariable1.ToString())
Console.WriteLine("Type of 'myVariable2' is '{0}' and" + _
" value is :{1}", myVariable2.GetType().ToString(), myVariable2.ToString())
' Compare 'myVariable1' instance with 'myVariable2' Object.
If myVariable1.Equals(myVariable2) Then
Console.WriteLine(ControlChars.NewLine + "Structures 'myVariable1' and " + _
"'myVariable2' are equal")
Else
Console.WriteLine(ControlChars.NewLine + "Structures 'myVariable1' and " + _
"'myVariable2' are not equal")
End If
Notes to Callers
Compiler overload resolution may account for an apparent difference in the behavior of the two Equals(Int16) method overloads. If an implicit conversion between the obj
argument and an Int16 is defined and the argument is not typed as an Object, compilers perform an implicit conversion and call the Equals(Int16) method. Otherwise, they call the Equals(Object) method, which always returns false
if its obj
argument is not an Int16 value. The following example illustrates the difference in behavior between the two method overloads. In the case of the Byte and SByte values, the first comparison returns true
because the compiler automatically performs a widening conversion and calls the Equals(Int16) method, whereas the second comparison returns false
because the compiler calls the Equals(Object) method.
using System;
public class Example
{
static short value = 112;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
TestObjectForEquality(byte1);
int int1 = 112;
Console.WriteLine("value = int1: {0,17}", value.Equals(int1));
TestObjectForEquality(int1);
sbyte sbyte1 = 112;
Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1));
TestObjectForEquality(sbyte1);
ushort ushort1 = 112;
Console.WriteLine("value = ushort1: {0,15}", value.Equals(ushort1));
TestObjectForEquality(ushort1);
decimal dec1 = 112m;
Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1));
TestObjectForEquality(dec1);
double dbl1 = 112;
Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1));
TestObjectForEquality(dbl1);
}
private static void TestObjectForEquality(Object obj)
{
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}\n",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj));
}
}
// The example displays the following output:
// value = byte1: True
// 112 (Int16) = 112 (Byte): False
//
// value = int1: False
// 112 (Int16) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int16) = 112 (SByte): False
//
// value = ushort1: False
// 112 (Int16) = 112 (UInt16): False
//
// value = dec1: False
// 112 (Int16) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int16) = 112 (Double): False
let value = 112s
let testObjectForEquality (obj: obj) =
printfn $"{value} ({value.GetType().Name}) = {obj} ({obj.GetType().Name}): {value.Equals obj}\n"
let byte1 = 112uy
printfn $"value = byte1: {value.Equals(int16 byte1),15}"
testObjectForEquality byte1
let int1 = 112
printfn $"value = int1: {value.Equals(int16 int1),17}"
testObjectForEquality int1
let sbyte1 = 112uy
printfn $"value = sbyte1: {value.Equals(int16 sbyte1),15}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int16 ushort1),15}"
testObjectForEquality ushort1
let dec1 = 112M
printfn $"value = dec1: {value.Equals dec1,20}"
testObjectForEquality dec1
let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals dbl1,19}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Int16) = 112 (Byte): False
//
// value = int1: False
// 112 (Int16) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int16) = 112 (SByte): False
//
// value = ushort1: False
// 112 (Int16) = 112 (UInt16): False
//
// value = dec1: False
// 112 (Int16) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int16) = 112 (Double): False
Module Example
Dim value As Int16 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim int1 As Integer = 112
Console.WriteLine("value = int1: {0,17}", value.Equals(int1))
TestObjectForEquality(int1)
Dim sbyte1 As SByte = 112
Console.WriteLine("value = sbyte1: {0,15}", value.Equals(sbyte1))
TestObjectForEquality(sbyte1)
Dim ushort1 As UShort = 112
Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim dec1 As Decimal = 112d
Console.WriteLine("value = dec1: {0,20}", value.Equals(dec1))
TestObjectForEquality(dec1)
Dim dbl1 As Double = 112
Console.WriteLine("value = dbl1: {0,19}", value.Equals(dbl1))
TestObjectForEquality(dbl1)
End Sub
Private Sub TestObjectForEquality(obj As Object)
Console.WriteLine("{0} ({1}) = {2} ({3}): {4}",
value, value.GetType().Name,
obj, obj.GetType().Name,
value.Equals(obj))
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' value = byte1: True
' 112 (Int16) = 112 (Byte): False
'
' value = int1: False
' 112 (Int16) = 112 (Int32): False
'
' value = sbyte1: True
' 112 (Int16) = 112 (SByte): False
'
' value = ushort1: False
' 112 (Int16) = 112 (UInt16): False
'
' value = dec1: False
' 112 (Int16) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (Int16) = 112 (Double): False