Int16.Equals Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту или Int16.
Перегрузки
| Имя | Описание |
|---|---|
| Equals(Int16) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному Int16 значению. |
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. |
Equals(Int16)
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
Возвращает значение, указывающее, равен ли этот экземпляр указанному Int16 значению.
public:
virtual bool Equals(short obj);
public bool Equals(short obj);
override this.Equals : int16 -> bool
Public Function Equals (obj As Short) As Boolean
Параметры
Возвращаемое значение
true Значение obj , равное этому экземпляру; в противном случае false.
Реализации
Комментарии
Этот метод реализует System.IEquatable<T> интерфейс и выполняет немного лучше, чем Equals из-за того, что он не должен преобразовать obj параметр в объект.
Примечания для тех, кто вызывает этот метод
Разрешение перегрузки компилятора может учитывать очевидное различие в поведении двух Equals(Int16) перегрузок метода. Если неявное преобразование между obj аргументом и Int16 аргументом не Objectзадано, компиляторы выполняют неявное преобразование и вызывают Equals(Int16) метод. В противном случае метод Equals(Object) вызывается, который всегда возвращается false , если его obj аргумент не является значением Int16 . В следующем примере показано различие в поведении между двумя перегрузками методов. В случае Byte и SByte значений первое сравнение возвращается true , так как компилятор автоматически выполняет расширение преобразования и вызывает Equals(Int16) метод, а второе сравнение возвращается false , так как компилятор вызывает Equals(Object) метод.
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
См. также раздел
Применяется к
Equals(Object)
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
- Исходный код:
- Int16.cs
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.
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
Параметры
- obj
- Object
Объект для сравнения с этим экземпляром.
Возвращаемое значение
true Значение , если obj является экземпляром Int16 и равно значению этого экземпляра; в противном случае false.
Примеры
В следующем примере кода показано использование Equals в контексте, сравнивая два коротких Int16значения и возвращая true , если они представляют одно и то же число, или false если они не используются.
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
Примечания для тех, кто вызывает этот метод
Разрешение перегрузки компилятора может учитывать очевидное различие в поведении двух Equals(Int16) перегрузок метода. Если неявное преобразование между obj аргументом и Int16 аргументом не Objectзадано, компиляторы выполняют неявное преобразование и вызывают Equals(Int16) метод. В противном случае метод Equals(Object) вызывается, который всегда возвращается false , если его obj аргумент не является значением Int16 . В следующем примере показано различие в поведении между двумя перегрузками методов. В случае Byte и SByte значений первое сравнение возвращается true , так как компилятор автоматически выполняет расширение преобразования и вызывает Equals(Int16) метод, а второе сравнение возвращается false , так как компилятор вызывает Equals(Object) метод.
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