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()メソッドを併用すると効果的です。
-
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
-
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)です。戻り値