Int32.Equals Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Int32-Wert ist.
Überlädt
Equals(Int32) |
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Int32-Wert ist. |
Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. |
Equals(Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Int32-Wert ist.
public:
virtual bool Equals(int obj);
public bool Equals (int obj);
override this.Equals : int -> bool
Public Function Equals (obj As Integer) As Boolean
Parameter
Gibt zurück
true
, wenn obj
über denselben Wert wie diese Instanz verfügt, andernfalls false
.
Implementiert
Hinweise
Diese Methode implementiert die System.IEquatable<T> -Schnittstelle und ist etwas besser, als Int32.Equals(Object) weil sie den obj
Parameter nicht in ein -Objekt konvertieren muss.
Hinweise für Aufrufer
Die Compilerüberladungsauflösung kann einen offensichtlichen Unterschied im Verhalten der beiden Equals(Int32) Methodenüberladungen ausmachen. Wenn eine implizite Konvertierung zwischen dem obj
Argument und einem Int32 definiert ist und das Argument nicht als Objecttypisiert wird, führen Compiler eine implizite Konvertierung durch und rufen die -Methode auf Equals(Int32) . Andernfalls rufen sie die Equals(Object) -Methode auf, die immer zurückgibt false
, wenn das obj
Argument kein Int32 Wert ist. Das folgende Beispiel veranschaulicht den Unterschied im Verhalten zwischen den beiden Methodenüberladungen. Im Fall der ByteWerte , Int16, SByteund UInt16 gibt der erste Vergleich zurück true
, da der Compiler automatisch eine Erweiterungskonvertierung durchführt und die Equals(Int32) -Methode aufruft, während der zweite Vergleich zurückgibt false
, weil der Compiler die Equals(Object) -Methode aufruft.
using System;
public class Example
{
static int value = 112;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
TestObjectForEquality(byte1);
short short1 = 112;
Console.WriteLine("value = short1: {0,15}", value.Equals(short1));
TestObjectForEquality(short1);
long long1 = 112;
Console.WriteLine("value = long1: {0,17}", value.Equals(long1));
TestObjectForEquality(long1);
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);
ulong ulong1 = 112;
Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1));
TestObjectForEquality(ulong1);
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 (Int32) = 112 (Byte): False
//
// value = short1: True
// 112 (Int32) = 112 (Int16): False
//
// value = long1: False
// 112 (Int32) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Int32) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int32) = 112 (UInt16): False
//
// value = ulong1: False
// 112 (Int32) = 112 (UInt64): False
//
// value = dec1: False
// 112 (Int32) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int32) = 112 (Double): False
let value = 112
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(int byte1),15}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals(int short1),15}"
testObjectForEquality short1
let long1 = 112L
printfn $"value = long1: {value.Equals(int long1),17}"
testObjectForEquality long1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals(int sbyte1),15}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int ushort1),15}"
testObjectForEquality ushort1
let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals(int ulong1),17}"
testObjectForEquality ulong1
let dec1 = 112M
printfn $"value = dec1: {value.Equals(int dec1),20}"
testObjectForEquality dec1
let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals(int dbl1),19}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Int32) = 112 (Byte): False
//
// value = short1: True
// 112 (Int32) = 112 (Int16): False
//
// value = long1: False
// 112 (Int32) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Int32) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int32) = 112 (UInt16): False
//
// value = ulong1: False
// 112 (Int32) = 112 (UInt64): False
//
// value = dec1: False
// 112 (Int32) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int32) = 112 (Double): False
Module Example
Dim value As Int32 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,15}", value.Equals(short1))
TestObjectForEquality(short1)
Dim long1 As Long = 112
Console.WriteLine("value = long1: {0,17}", value.Equals(long1))
TestObjectForEquality(long1)
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,15}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim ulong1 As ULong = 112
Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1))
TestObjectForEquality(ulong1)
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 (Int32) = 112 (Byte): False
'
' value = short1: True
' 112 (Int32) = 112 (Int16): False
'
' value = long1: False
' 112 (Int32) = 112 (Int64): False
'
' value = sbyte1: True
' 112 (Int32) = 112 (SByte): False
'
' value = ushort1: True
' 112 (Int32) = 112 (UInt16): False
'
' value = ulong1: False
' 112 (Int32) = 112 (UInt64): False
'
' value = dec1: False
' 112 (Int32) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (Int32) = 112 (Double): False
Gilt für:
Equals(Object)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.
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
Parameter
- obj
- Object
Ein Objekt, das mit dieser Instanz verglichen werden soll.
Gibt zurück
true
, wenn obj
eine Instanz von Int32 ist, deren Wert gleich dem Wert dieser Instanz ist, andernfalls false
.
Beispiele
Das folgende Beispiel veranschaulicht die Verwendung von im Kontext von Equals
Int32
, vergleicht zwei int
Werte und gibt zurück true
, wenn sie die gleiche Zahl darstellen oder false
nicht.
Int32 myVariable1 = 60;
Int32 myVariable2 = 60;
// 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" );
Int32 myVariable1 = 60;
Int32 myVariable2 = 60;
// 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 = 60
let myVariable2 = 60
// Get and display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is: {myVariable1}"
printfn $"Type of 'myVariable2' 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 Int32 = 60
Dim myVariable2 As Int32 = 60
' 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
Hinweise für Aufrufer
Die Compilerüberladungsauflösung kann einen offensichtlichen Unterschied im Verhalten der beiden Equals(Int32) Methodenüberladungen ausmachen. Wenn eine implizite Konvertierung zwischen dem obj
Argument und einem Int32 definiert ist und das Argument nicht als Objecttypisiert wird, führen Compiler eine implizite Konvertierung durch und rufen die -Methode auf Equals(Int32) . Andernfalls rufen sie die Equals(Object) -Methode auf, die immer zurückgibt false
, wenn das obj
Argument kein Int32 Wert ist. Das folgende Beispiel veranschaulicht den Unterschied im Verhalten zwischen den beiden Methodenüberladungen. Im Fall der ByteWerte , Int16, SByteund UInt16 gibt der erste Vergleich zurück true
, da der Compiler automatisch eine Erweiterungskonvertierung durchführt und die Equals(Int32) -Methode aufruft, während der zweite Vergleich zurückgibt false
, weil der Compiler die Equals(Object) -Methode aufruft.
using System;
public class Example
{
static int value = 112;
public static void Main()
{
byte byte1= 112;
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1));
TestObjectForEquality(byte1);
short short1 = 112;
Console.WriteLine("value = short1: {0,15}", value.Equals(short1));
TestObjectForEquality(short1);
long long1 = 112;
Console.WriteLine("value = long1: {0,17}", value.Equals(long1));
TestObjectForEquality(long1);
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);
ulong ulong1 = 112;
Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1));
TestObjectForEquality(ulong1);
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 (Int32) = 112 (Byte): False
//
// value = short1: True
// 112 (Int32) = 112 (Int16): False
//
// value = long1: False
// 112 (Int32) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Int32) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int32) = 112 (UInt16): False
//
// value = ulong1: False
// 112 (Int32) = 112 (UInt64): False
//
// value = dec1: False
// 112 (Int32) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int32) = 112 (Double): False
let value = 112
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(int byte1),15}"
testObjectForEquality byte1
let short1 = 112s
printfn $"value = short1: {value.Equals(int short1),15}"
testObjectForEquality short1
let long1 = 112L
printfn $"value = long1: {value.Equals(int long1),17}"
testObjectForEquality long1
let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals(int sbyte1),15}"
testObjectForEquality sbyte1
let ushort1 = 112us
printfn $"value = ushort1: {value.Equals(int ushort1),15}"
testObjectForEquality ushort1
let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals(int ulong1),17}"
testObjectForEquality ulong1
let dec1 = 112M
printfn $"value = dec1: {value.Equals(int dec1),20}"
testObjectForEquality dec1
let dbl1 = 112.0
printfn $"value = dbl1: {value.Equals(int dbl1),19}"
testObjectForEquality dbl1
// The example displays the following output:
// value = byte1: True
// 112 (Int32) = 112 (Byte): False
//
// value = short1: True
// 112 (Int32) = 112 (Int16): False
//
// value = long1: False
// 112 (Int32) = 112 (Int64): False
//
// value = sbyte1: True
// 112 (Int32) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int32) = 112 (UInt16): False
//
// value = ulong1: False
// 112 (Int32) = 112 (UInt64): False
//
// value = dec1: False
// 112 (Int32) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int32) = 112 (Double): False
Module Example
Dim value As Int32 = 112
Public Sub Main()
Dim byte1 As Byte = 112
Console.WriteLine("value = byte1: {0,15}", value.Equals(byte1))
TestObjectForEquality(byte1)
Dim short1 As Short = 112
Console.WriteLine("value = short1: {0,15}", value.Equals(short1))
TestObjectForEquality(short1)
Dim long1 As Long = 112
Console.WriteLine("value = long1: {0,17}", value.Equals(long1))
TestObjectForEquality(long1)
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,15}", value.Equals(ushort1))
TestObjectForEquality(ushort1)
Dim ulong1 As ULong = 112
Console.WriteLine("value = ulong1: {0,17}", value.Equals(ulong1))
TestObjectForEquality(ulong1)
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 (Int32) = 112 (Byte): False
'
' value = short1: True
' 112 (Int32) = 112 (Int16): False
'
' value = long1: False
' 112 (Int32) = 112 (Int64): False
'
' value = sbyte1: True
' 112 (Int32) = 112 (SByte): False
'
' value = ushort1: True
' 112 (Int32) = 112 (UInt16): False
'
' value = ulong1: False
' 112 (Int32) = 112 (UInt64): False
'
' value = dec1: False
' 112 (Int32) = 112 (Decimal): False
'
' value = dbl1: False
' 112 (Int32) = 112 (Double): False