首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 運算子多載:複數類別實作 +、- 運算子、System.Exception 體系架構

     編輯:關於C語言

運算子多載:讓自訂型別像內建型別一樣運算

C# 支援運算子多載(Java 不支援),語法:public static 回傳型別 operator 運算子(參數)。

Complex 複數類別完整實作


using System;

public class complex
{
    private float real, img;

    public complex(float p, float q) { real = p; img = q; }
    public complex() { real = 0; img = 0; }

    public void Print() => Console.WriteLine("{0} + {1}i", real, img);

    // 多載 +
    public static complex operator +(complex lhs, complex rhs)
    {
        complex sum = new complex();
        sum.real = lhs.real + rhs.real;
        sum.img = lhs.img + rhs.img;
        return sum;
    }

    // 多載 -
    public static complex operator -(complex lhs, complex rhs)
    {
        complex result = new complex();
        result.real = lhs.real - rhs.real;
        result.img = lhs.img - rhs.img;
        return result;
    }
}

測試程式與輸出


using System;

public class ComplexClass
{
    public static void Main(string[] args)
    {
        complex A = new complex(10.5f, 12.5f);
        complex B = new complex(8.0f, 4.5f);
        complex C;

        Console.Write("Complex Number A: "); A.Print();
        Console.Write("Complex Number B: "); B.Print();

        C = A + B; Console.Write("\nA + B = "); C.Print();
        C = A - B; Console.Write("A - B = "); C.Print();
    }
}

輸出:


Complex Number A: 10.5 + 12.5i
Complex Number B: 8 + 4.5i
A + B = 18.5 + 17i
A - B = 2.5 + 8i

可多載運算子清單

  • 一元:+ - ! ~ ++ -- true false
  • 二元:+ - * / % & | ^ << >> == != > < >= <=

注意: 多載 == 必須同時多載 !=。

例外類別體系

  • System.Exception:所有例外基類
  • System.SystemException:CLR 系統錯誤(IndexOutOfRangeException、NullReferenceException、ArithmeticException、FormatException)
  • System.ApplicationException:使用者自訂例外基類
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved