Int64.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 Objekt oder Int64 ist.
Überlädt
Equals(Int64) |
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Int64-Wert ist. |
Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. |
Equals(Int64)
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Int64-Wert ist.
public:
virtual bool Equals(long obj);
public bool Equals (long obj);
override this.Equals : int64 -> bool
Public Function Equals (obj As Long) 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 -Schnittstelle und ist etwas besser als, da sie den -Parameter nicht in ein System.IEquatable<T> Equals obj
-Objekt konvertieren muss.
Hinweise für Aufrufer
Die Compilerüberladungsauflösung kann einen offensichtlichen Unterschied im Verhalten der beiden Equals(Int64) Methodenüberladungen berücksichtigen. Wenn eine implizite Konvertierung zwischen dem Argument und einem definiert ist und das Argument nicht als typiert ist, führen Compiler eine implizite Konvertierung aus und rufen obj
Int64 die Object -Methode Equals(Int64) auf. Andernfalls rufen sie die Equals(Object) -Methode auf, die immer zurückgibt, false
wenn das Argument kein Wert obj
Int64 ist. Im folgenden Beispiel wird der Unterschied im Verhalten zwischen den beiden Methodenüberladungen veranschaulicht. Im Fall der -, -, -, - und -Werte wird der erste Vergleich zurückgegeben, da der Compiler automatisch eine sich ausweitende Konvertierung ausführt und die -Methode aufruft, während der zweite Vergleich zurückgibt, da der Compiler die -Methode Byte SByte Int16 UInt16 Int32 UInt32 true
Equals(Int64) false
Equals(Object) aufruft.
using System;
public class Example
{
static long 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);
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);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,17}", value.Equals(uint1));
TestObjectForEquality(uint1);
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 (Int64) = 112 (Byte): False
//
// value = short1: True
// 112 (Int64) = 112 (Int16): False
//
// value = int1: True
// 112 (Int64) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Int64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (Int64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int64) = 112 (Double): False
Gilt für
Equals(Object)
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 Int64 ist, deren Wert gleich dem Wert dieser Instanz ist, andernfalls false
.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung von im Kontext von , vergleicht zwei long-Werte und gibt zurück, wenn sie dieselbe Zahl darstellen, oder , wenn sie Equals
Int64
true
false
dies nicht tun.
Int64 myVariable1 = 80;
Int64 myVariable2 = 80;
// 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" );
Int64 myVariable1 = 80;
Int64 myVariable2 = 80;
// 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 = 80L
let myVariable2 = 80L
// Get and display the declaring type.
printfn $"\nType of 'myVariable1' is '{myVariable1.GetType()}' and value is: {myVariable1}"
printfn $"\nType 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 Int64 = 80
Dim myVariable2 As Int64 = 80
' 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(Int64) Methodenüberladungen berücksichtigen. Wenn eine implizite Konvertierung zwischen dem Argument und einem definiert ist und das Argument nicht als typiert ist, führen Compiler eine implizite Konvertierung aus und rufen obj
Int64 die Object -Methode Equals(Int64) auf. Andernfalls rufen sie die Equals(Object) -Methode auf, die immer zurückgibt, false
wenn das Argument kein Wert obj
Int64 ist. Im folgenden Beispiel wird der Unterschied im Verhalten zwischen den beiden Methodenüberladungen veranschaulicht. Im Fall der -, -, -, - und -Werte wird der erste Vergleich zurückgegeben, da der Compiler automatisch eine sich ausweitende Konvertierung ausführt und die -Methode aufruft, während der zweite Vergleich zurückgibt, da der Compiler die -Methode Byte SByte Int16 UInt16 Int32 UInt32 true
Equals(Int64) false
Equals(Object) aufruft.
using System;
public class Example
{
static long 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);
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);
uint uint1 = 112;
Console.WriteLine("value = uint1: {0,17}", value.Equals(uint1));
TestObjectForEquality(uint1);
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 (Int64) = 112 (Byte): False
//
// value = short1: True
// 112 (Int64) = 112 (Int16): False
//
// value = int1: True
// 112 (Int64) = 112 (Int32): False
//
// value = sbyte1: True
// 112 (Int64) = 112 (SByte): False
//
// value = ushort1: True
// 112 (Int64) = 112 (UInt16): False
//
// value = uint1: True
// 112 (Int64) = 112 (UInt32): False
//
// value = dec1: False
// 112 (Int64) = 112 (Decimal): False
//
// value = dbl1: False
// 112 (Int64) = 112 (Double): False