UInt32.Equals Metodo

Definizione

Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato o a un oggetto UInt32.

Overload

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

Equals(UInt32)

Restituisce un valore che indica se l'istanza è uguale a un oggetto UInt32 specificato.

Equals(Object)

Origine:
UInt32.cs
Origine:
UInt32.cs
Origine:
UInt32.cs

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

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

Parametri

obj
Object

Oggetto da confrontare con l'istanza.

Restituisce

true se obj è un'istanza di UInt32 ed è uguale al valore dell'istanza; in caso contrario, false.

Esempio

Nell'esempio di codice seguente viene illustrato il Equals metodo .

UInt32 myVariable1 = 20;
UInt32 myVariable2 = 20;

// 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" );
UInt32 myVariable1 = 20;
UInt32 myVariable2 = 20;

// 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 = 20u
let myVariable2 = 20u

// 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 UInt32 = UInt32.Parse(20)
Dim myVariable2 As UInt32 = UInt32.Parse(20)

' 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

Note per i chiamanti

La risoluzione dell'overload del compilatore può tenere conto di una differenza apparente nel comportamento dei due Equals(UInt32) overload del metodo. Se viene definita una conversione implicita tra l'argomento obj e un UInt32 oggetto e l'argomento non viene tipizzato come Object, i compilatori eseguono una conversione implicita e chiamano il Equals(UInt32) metodo . In caso contrario, chiamano il Equals(Object) metodo , che restituisce false sempre se il relativo obj argomento non è un UInt32 valore. Nell'esempio seguente viene illustrata la differenza di comportamento tra i due overload del metodo. Nel caso dei Byte valori e UInt16 , il primo confronto restituisce true perché il compilatore esegue automaticamente una conversione più ampia e chiama il Equals(UInt32) metodo , mentre il secondo confronto restituisce false perché il compilatore chiama il Equals(Object) metodo .

using System;

public class Example
{
   static uint value = 112;
   
   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
      TestObjectForEquality(short1);

      long long1 = 112;
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1));
      TestObjectForEquality(long1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      ulong ulong1 = 112;
      Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1));
      TestObjectForEquality(ulong1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,20}", 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 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
let value = 112u

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 byte1,16}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1

let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1

let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1

let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1

let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1

// The example displays the following output:
//       value = byte1:             True
//       112 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
Module Example
   Dim value As UInt32 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim long1 As Long = 112
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
      TestObjectForEquality(long1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim ulong1 As ULong = 112
      Console.WriteLine("value = ulong1: {0,19}", value.Equals(ulong1))
      TestObjectForEquality(ulong1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,20}", 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 (UInt32) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt32) = 112 (Int16): False
'
'       value = long1:              False
'       112 (UInt32) = 112 (Int64): False
'
'       value = sbyte1:             False
'       112 (UInt32) = 112 (SByte): False
'
'       value = ushort1:             True
'       112 (UInt32) = 112 (UInt16): False
'
'       value = ulong1:               False
'       112 (UInt32) = 112 (UInt64): False
'
'       value = dec1:                 False
'       112 (UInt32) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt32) = 112 (Double): False

Vedi anche

Si applica a

Equals(UInt32)

Origine:
UInt32.cs
Origine:
UInt32.cs
Origine:
UInt32.cs

Restituisce un valore che indica se l'istanza è uguale a un oggetto UInt32 specificato.

public:
 virtual bool Equals(System::UInt32 obj);
public bool Equals (uint obj);
override this.Equals : uint32 -> bool
Public Function Equals (obj As UInteger) As Boolean

Parametri

obj
UInt32

Valore da confrontare con questa istanza.

Restituisce

true se obj ha lo stesso valore di questa istanza; in caso contrario, false.

Implementazioni

Commenti

Questo metodo implementa l'interfaccia System.IEquatable<T> ed esegue prestazioni leggermente migliori rispetto al Equals(Object) metodo perché non è necessario convertire il obj parametro in un oggetto .

Note per i chiamanti

La risoluzione dell'overload del compilatore può tenere conto di una differenza apparente nel comportamento dei due Equals(UInt32) overload del metodo. Se viene definita una conversione implicita tra l'argomento obj e un UInt32 oggetto e l'argomento non viene tipizzato come Object, i compilatori eseguono una conversione implicita e chiamano il Equals(UInt32) metodo . In caso contrario, chiamano il Equals(Object) metodo , che restituisce false sempre se il relativo obj argomento non è un UInt32 valore. Nell'esempio seguente viene illustrata la differenza di comportamento tra i due overload del metodo. Nel caso dei Byte valori e UInt16 , il primo confronto restituisce true perché il compilatore esegue automaticamente una conversione più ampia e chiama il Equals(UInt32) metodo , mentre il secondo confronto restituisce false perché il compilatore chiama il Equals(Object) metodo .

using System;

public class Example
{
   static uint value = 112;
   
   public static void Main()
   {
      byte byte1= 112;
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1));
      TestObjectForEquality(byte1);

      short short1 = 112;
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1));
      TestObjectForEquality(short1);

      long long1 = 112;
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1));
      TestObjectForEquality(long1);

      sbyte sbyte1 = 112;
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1));
      TestObjectForEquality(sbyte1);

      ushort ushort1 = 112;
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1));
      TestObjectForEquality(ushort1);

      ulong ulong1 = 112;
      Console.WriteLine("value = ulong1: {0,18}", value.Equals(ulong1));
      TestObjectForEquality(ulong1);

      decimal dec1 = 112m;
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1));
      TestObjectForEquality(dec1);

      double dbl1 = 112;
      Console.WriteLine("value = dbl1: {0,20}", 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 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
let value = 112u

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 byte1,16}"
testObjectForEquality byte1

let short1 = 112s
printfn $"value = short1: {value.Equals short1,17}"
testObjectForEquality short1

let long1 = 112L
printfn $"value = long1: {value.Equals long1,18}"
testObjectForEquality long1

let sbyte1 = 112y
printfn $"value = sbyte1: {value.Equals sbyte1,17}"
testObjectForEquality sbyte1

let ushort1 = 112us
printfn $"value = ushort1: {value.Equals ushort1,16}"
testObjectForEquality ushort1

let ulong1 = 112uL
printfn $"value = ulong1: {value.Equals ulong1,18}"
testObjectForEquality ulong1

let dec1 = 112m
printfn $"value = dec1: {value.Equals dec1,21}"
testObjectForEquality dec1

let dbl1 = 112.
printfn $"value = dbl1: {value.Equals dbl1,20}"
testObjectForEquality dbl1

// The example displays the following output:
//       value = byte1:             True
//       112 (UInt32) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt32) = 112 (Int16): False
//
//       value = long1:              False
//       112 (UInt32) = 112 (Int64): False
//
//       value = sbyte1:             False
//       112 (UInt32) = 112 (SByte): False
//
//       value = ushort1:             True
//       112 (UInt32) = 112 (UInt16): False
//
//       value = ulong1:               False
//       112 (UInt32) = 112 (UInt64): False
//
//       value = dec1:                 False
//       112 (UInt32) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt32) = 112 (Double): False
Module Example
   Dim value As UInt32 = 112
   
   Public Sub Main()
      Dim byte1 As Byte = 112
      Console.WriteLine("value = byte1: {0,16}", value.Equals(byte1))
      TestObjectForEquality(byte1)
      
      Dim short1 As Short = 112
      Console.WriteLine("value = short1: {0,17}", value.Equals(short1))
      TestObjectForEquality(short1)

      Dim long1 As Long = 112
      Console.WriteLine("value = long1: {0,18}", value.Equals(long1))
      TestObjectForEquality(long1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      Dim ushort1 As UShort = 112
      Console.WriteLine("value = ushort1: {0,16}", value.Equals(ushort1))
      TestObjectForEquality(ushort1)

      Dim ulong1 As ULong = 112
      Console.WriteLine("value = ulong1: {0,19}", value.Equals(ulong1))
      TestObjectForEquality(ulong1)

      Dim dec1 As Decimal = 112d
      Console.WriteLine("value = dec1: {0,21}", value.Equals(dec1))
      TestObjectForEquality(dec1)

      Dim dbl1 As Double = 112
      Console.WriteLine("value = dbl1: {0,20}", 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 (UInt32) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt32) = 112 (Int16): False
'
'       value = long1:              False
'       112 (UInt32) = 112 (Int64): False
'
'       value = sbyte1:             False
'       112 (UInt32) = 112 (SByte): False
'
'       value = ushort1:             True
'       112 (UInt32) = 112 (UInt16): False
'
'       value = ulong1:               False
'       112 (UInt32) = 112 (UInt64): False
'
'       value = dec1:                 False
'       112 (UInt32) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt32) = 112 (Double): False

Si applica a