UInt16.Equals Metod

Definition

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt eller UInt16.

Överlagringar

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

Equals(UInt16)

Returnerar ett värde som anger om den här instansen är lika med ett angivet UInt16 värde.

Equals(Object)

Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

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

Parametrar

obj
Object

Ett objekt som ska jämföras med den här instansen.

Returer

trueom obj är en instans av UInt16 och är lika med värdet för den här instansen, annars . false

Exempel

I följande exempel visas Equals metoden.

UInt16 myVariable1 = 10;
UInt16 myVariable2 = 10;

//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 = 10us
let myVariable2 = 10us

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

   ' 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

Anteckningar till anropare

Kompilatorns överlagringsmatchning kan utgöra en uppenbar skillnad i beteendet för de två Equals(UInt16) metodöverlagringarna. Om en implicit konvertering mellan obj argumentet och en UInt16 definieras och argumentet inte skrivs som en Object, utför kompilatorerna en implicit konvertering och anropar Equals(UInt16) metoden. Annars anropar Equals(Object) de metoden, som alltid returnerar false om argumentet obj inte är ett UInt16 värde. I följande exempel visas skillnaden i beteende mellan de två metodöverlagringarna. När det gäller ett värde returneras Byte den första jämförelsen eftersom kompilatorn automatiskt utför en bredare konvertering och anropar true metoden, medan den andra jämförelsen returneras Equals(UInt16) eftersom kompilatorn anropar false metoden.Equals(Object)

using System;

public class Example
{
   static ushort 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);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
      TestObjectForEquality(int1);

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

      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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False
let value = 112us

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 int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1

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

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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False
Module Example
   Dim value As UInt16 = 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 int1 As Integer = 112
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
      TestObjectForEquality(int1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      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 (UInt16) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt16) = 112 (Int16): False
'
'       value = int1:               False
'       112 (UInt16) = 112 (Int32): False
'
'       value = sbyte1:             False
'       112 (UInt16) = 112 (SByte): False
'
'       value = dec1:                 False
'       112 (UInt16) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt16) = 112 (Double): False

Gäller för

Equals(UInt16)

Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs
Källa:
UInt16.cs

Returnerar ett värde som anger om den här instansen är lika med ett angivet UInt16 värde.

public:
 virtual bool Equals(System::UInt16 obj);
public bool Equals(ushort obj);
override this.Equals : uint16 -> bool
Public Function Equals (obj As UShort) As Boolean

Parametrar

obj
UInt16

Ett 16-bitars heltal som ska jämföras med den här instansen.

Returer

trueom obj har samma värde som den här instansen, annars . false

Implementeringar

Kommentarer

Den här metoden implementerar System.IEquatable<T> gränssnittet och presterar något bättre än Equals eftersom den inte behöver konvertera parametern obj till ett objekt.

Anteckningar till anropare

Kompilatorns överlagringsmatchning kan utgöra en uppenbar skillnad i beteendet för de två Equals(UInt16) metodöverlagringarna. Om en implicit konvertering mellan obj argumentet och en UInt16 definieras och argumentet inte skrivs som en Object, utför kompilatorerna en implicit konvertering och anropar Equals(UInt16) metoden. Annars anropar Equals(Object) de metoden, som alltid returnerar false om argumentet obj inte är ett UInt16 värde. I följande exempel visas skillnaden i beteende mellan de två metodöverlagringarna. När det gäller ett värde returneras Byte den första jämförelsen eftersom kompilatorn automatiskt utför en bredare konvertering och anropar true metoden, medan den andra jämförelsen returneras Equals(UInt16) eftersom kompilatorn anropar false metoden.Equals(Object)

using System;

public class Example
{
   static ushort 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);

      int int1 = 112;
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1));
      TestObjectForEquality(int1);

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

      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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False
let value = 112us

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 int1 = 112
printfn $"value = int1: {value.Equals int1,19}"
testObjectForEquality int1

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

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 (UInt16) = 112 (Byte): False
//
//       value = short1:             False
//       112 (UInt16) = 112 (Int16): False
//
//       value = int1:               False
//       112 (UInt16) = 112 (Int32): False
//
//       value = sbyte1:             False
//       112 (UInt16) = 112 (SByte): False
//
//       value = dec1:                 False
//       112 (UInt16) = 112 (Decimal): False
//
//       value = dbl1:                False
//       112 (UInt16) = 112 (Double): False
Module Example
   Dim value As UInt16 = 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 int1 As Integer = 112
      Console.WriteLine("value = int1: {0,19}", value.Equals(int1))
      TestObjectForEquality(int1)

      Dim sbyte1 As SByte = 112
      Console.WriteLine("value = sbyte1: {0,17}", value.Equals(sbyte1))
      TestObjectForEquality(sbyte1)
      
      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 (UInt16) = 112 (Byte): False
'
'       value = short1:             False
'       112 (UInt16) = 112 (Int16): False
'
'       value = int1:               False
'       112 (UInt16) = 112 (Int32): False
'
'       value = sbyte1:             False
'       112 (UInt16) = 112 (SByte): False
'
'       value = dec1:                 False
'       112 (UInt16) = 112 (Decimal): False
'
'       value = dbl1:                False
'       112 (UInt16) = 112 (Double): False

Gäller för