私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1、演算子のオーバーロード
演算子のオーバーロードとは、C# の組み込み演算子を再定義することを指します。
プログラマーユーザー定義タイプの演算子も使用できます。オーバーロードされた演算子は、キーワード演算子の後に演算子の記号が続くことによって定義される特別な名前を持つ関数です。他の関数と同様に、オーバーロードされた演算子には戻り値の型とパラメーター リストがあります。
2. Box クラスで演算子のオーバーロードを定義する
public class Box
{
private double length;
[Description("长度")]
public double Length
{
get { return length; }
set { length = value; }
}
private double width;
[Description("宽度")]
public double Width
{
get { return width; }
set { width = value; }
}
private double height;
[Description("高度")]
public double Height
{
get { return height; }
set { height = value; }
}
public double GetVolume()
{
return length * width * height;
}
public static bool operator == (Box box1, Box box2)
{
return (box1.length == box2.length) && (box1.width == box2.width) && (box1.height == box2.height);
}
public static bool operator != (Box box1, Box box2)
{
return (box1.length != box2.length) || (box1.width != box2.width) || (box1.height != box2.height);
}
}
3. Boxクラスを適用する
Box box1 = new Box();
Box box2 = new Box();
Box box3 = new Box();
double volume = 0.0;
box1.Length = 3.0;
box1.Width = 4.0;
box1.Height = 5.0;
volume=box1.GetVolume();
Console.WriteLine($"Box1的体积是{volume}");
box2.Length = 6.0;
box2.Width = 7.0;
box2.Height = 8.0;
volume = box2.GetVolume();
Console.WriteLine($"Box2的体积是{volume}");
bool flag=box1 == box2;
Console.WriteLine($"Box1==Box2:{flag}");
flag = box1 != box2;
Console.WriteLine($"Box1!=Box2:{flag}");
4. 運用実績