程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Visual Studio:針對Java開發人員的C#編程語言(2)(5)

Visual Studio:針對Java開發人員的C#編程語言(2)(5)

編輯:關於C語言

運算符重載

與 C++ 一樣,C# 允許我們重載運算符,以供在我們自己的類中使用。這可能使得用戶定義的數據類型看起來很自然,並且可以在邏輯上作為基本數據類型使用。例如,我們可以創建一個新的名為 Complex 的數據類型來表示一個復雜的數字,並且提供一些方法,以使用標准的算術運算符對這樣的數字進行算術運算,例如使用 + 運算符來使兩個復雜的數字相加。

為了重載一個運算符,我們編寫了一個函數,它將需要重載的運算符的符號放在名稱 Operator 的後面。例如,我們可以這樣來重載 + 運算符:

public static complex Operator+(complex lhs, complex rhs)

所有的運算符重載都是類的靜態方法。同時也需要注意,如果您重載等於運算符 (==),您還必須重載不等於運算符 (!=)。

可以重載的運算符的完整列表如下:

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

下一個示例創建了一個 Complex 類,該類重載 + 和 - 運算符:

using System;
public class complex
{
 private float real;
 private float 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);
 }
 // Overloading '+' Operator
 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);
 }
 // Overloading '-' Operator
 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);
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved