C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のSByte.Equals()メソッドの使い方を実例付きで解説

C#のSByte.Equals()メソッドは、現在のインスタンスが指定されたオブジェクトまたはsbyte値と等しいかどうかを示す値(bool型)を返します。等しい場合はtrue、等しくない場合はfalseが返されます。

構文

SByte.Equals()メソッドには、以下の2つのオーバーロードがあります。

public bool Equals (sbyte ob);
public override bool Equals (object ob);

1つ目の構文では、パラメータobに「このインスタンスと比較するsbyte値」を指定します。2つ目の構文では、パラメータobに「このインスタンスと比較するオブジェクト」を指定します。

使用例1:sbyte値同士の比較

まず、2つのsbyte値をEquals()メソッドで比較する例を見てみましょう。あわせて、CompareTo()メソッドを使った大小比較の方法も確認できます。

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 10;
      sbyte s2 = 100;
      Console.WriteLine("Value of S1 = "+s1);
      Console.WriteLine("Value of S2 = "+s2);
      Console.WriteLine("Is s1 and s2 equal? = "+s1.Equals(s2));
      int res = s1.CompareTo(s2);
      if (res > 0)
         Console.WriteLine("s1 > s2");
      else if (res < 0)
         Console.WriteLine("s1 < s2");
      else
         Console.WriteLine("s1 = s2");
   }
}

出力

上記のコードを実行すると、次のような出力が得られます。

Value of S1 = 10
Value of S2 = 100
Is s1 and s2 equal? = False
s1 < s2

s1(10)とs2(100)は異なる値のため、Equals()メソッドはFalseを返し、CompareTo()の結果から「s1 < s2」と判定されています。

使用例2:object型との比較

続いて、Equals(object)オーバーロードを使った例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 10;
      object s2 = 10;
      Console.WriteLine("Value of S1 = "+s1);
      Console.WriteLine("Value of S2 = "+s2);
      Console.WriteLine("Is s1 and s2 equal? = "+s1.Equals(s2));
   }
}

出力

実行結果は以下の通りです。

Value of S1 = 10
Value of S2 = 10
Is s1 and s2 equal? = False

一見すると両方とも10なのでtrueになりそうですが、結果はFalseになります。これは、変数s2がobject型としてボックス化される際にInt32(int)型として扱われるためです。SByte.Equals(object)メソッドは、引数がSByte型である場合にのみ値の比較を行い、それ以外の型が渡された場合は常にfalseを返します。object型との比較を行う際は、ボックス化される際の実際の型に注意しましょう。

まとめ

SByte.Equals()メソッドは、sbyte値同士の等価性を簡単に判定できる便利なメソッドです。ただし、object型を受け取るオーバーロードでは、引数がSByte型としてボックス化されている必要がある点に注意してください。値の大小比較まで行いたい場合は、CompareTo()メソッドを併用すると効果的です。

  1. C#のUInt64.Equalsメソッドの使い方をサンプルコード付きで解説

    C#のUInt64.Equals()メソッドは、現在のインスタンスが指定されたオブジェクトまたはUInt64(64ビット符号なし整数)の値と等しいかどうかを判定し、その結果をbool型(true / false)で返します。数値の比較処理を行いたい場合に便利なメソッドです。構文UInt64.Equals()メソッドには、以下の2つのオーバーロードが用意されています。public override bool Equals (object ob); public bool Equals (ulong ob);1つ目の構文のパラメータ「ob」は、現在のインスタンスと比較する対象のオブジェクトです。2

  2. C#のUInt16.Equalsメソッドとは?使い方をサンプルコード付きで解説

    C#のUInt16.Equals()メソッドは、現在のインスタンスが指定したオブジェクトまたはUInt16(16ビット符号なし整数)の値と等しいかどうかを示すbool値を返すメソッドです。構文UInt16.Equals()メソッドには、以下の2種類の構文があります。public override bool Equals (object ob); public bool Equals (ushort ob);1つ目の構文のパラメータobは、このインスタンスと比較する対象のオブジェクトです。2つ目の構文のパラメータobは、このインスタンスと比較する16ビット符号なし整数(ushort)です。戻り値