次の方法で共有


Int16.Equals メソッド

定義

対象のインスタンスが、指定したオブジェクトまたは Int16 に等しいかどうかを示す値を返します。

オーバーロード

Equals(Int16)

このインスタンスが指定した Int16 値に等しいかどうかを示す値を返します。

Equals(Object)

このインスタンスが指定されたオブジェクトに等しいかどうかを示す値を返します。

Equals(Int16)

このインスタンスが指定した 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

パラメーター

obj
Int16

このインスタンスと比較する Int16 値。

戻り値

Boolean

obj の値がこのインスタンスと同じ場合は true。それ以外の場合は false

実装

注釈

このメソッドは インターフェイスを実装し、パラメーターを オブジェクトに変換する必要がないので、 よりも少し System.IEquatable<T> Equals obj 優れたパフォーマンスを実現します。

注意 (呼び出し元)

コンパイラオーバーロードの解決は、2 つのメソッド オーバーロードの動作の明らかな違い Equals(Int16) を考慮する可能性があります。 引数と の間の暗黙的な変換が定義され、引数が として型指定されていない場合、コンパイラは暗黙的な変換を実行し obj Int16Object メソッドを呼び出 Equals(Int16) します。 それ以外の場合は、 メソッドを呼び出します。このメソッドは、引数が値でない場合 Equals(Object) false obj は常に を返 Int16 します。 次の例は、2 つのメソッド オーバーロードの動作の違いを示しています。 と の値の場合、コンパイラは拡大変換を自動的に実行し、 メソッドを呼び出すのに対し、2 番目の比較は メソッドを呼び出すので、最初の比較は を返します。 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

こちらもご覧ください

適用対象

Equals(Object)

このインスタンスが指定されたオブジェクトに等しいかどうかを示す値を返します。

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

このインスタンスと比較するオブジェクト。

戻り値

Boolean

objInt16 のインスタンスで、このインスタンスの値に等しい場合は true。それ以外の場合は false

次のコード例は、 のコンテキストでの の使用を示しています。2 つの短い値を比較し、同じ数値を表す場合は を返します。そうではない場合は を 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" );
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

注意 (呼び出し元)

コンパイラオーバーロードの解決は、2 つのメソッド オーバーロードの動作の明らかな違い Equals(Int16) を考慮する可能性があります。 引数と の間の暗黙的な変換が定義され、引数が として型指定されていない場合、コンパイラは暗黙的な変換を実行し obj Int16Object メソッドを呼び出 Equals(Int16) します。 それ以外の場合は、 メソッドを呼び出します。このメソッドは、引数が値でない場合 Equals(Object) false obj は常に を返 Int16 します。 次の例は、2 つのメソッド オーバーロードの動作の違いを示しています。 と の値の場合、コンパイラは拡大変換を自動的に実行し、 メソッドを呼び出すのに対し、2 番目の比較は メソッドを呼び出すので、最初の比較は を返します。 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

適用対象