Operator運算子過載與Implicit隱式型別轉換
class Person
{
public int Age { get; set; }
public string Name { get; set; }
public static int operator -(Person p1, Person p2)//int為想減結果型別,-表示對-進行運算子過載
//引數為待計算的兩個值
{
return p1.Age - p2.Age;
}
//當過載>後,要求必須過載<
public static bool operator >(Person p1, Person p2)
{
return p1.Age > p2.Age;
}
public static bool operator <(Person p1, Person p2)
{
return p1.Age < p2.Age;
}
//將string 轉換成Person
public static implicit operator Person(string s)
{
Person p = new Person();
p.Name = s;
return p;
}
//將Person 轉換成string
public static implicit operator string(Person p)
{
return p.Name;
}
//當過載==後,要求必須過載!=
public static bool operator ==(Person p1, Person p2)
{
return p1.Name == p2.Name && p1.Age == p2.Age;
}
public static bool operator !=(Person p1, Person p2)
{
return !(p1 == p2);
}
}
相關文章
- 型別轉換 運算子過載型別
- JavaScript 運算子規則與隱式型別轉換詳解JavaScript型別
- c#自定義型別的轉換方式operator,以及implicit(隱式)和explicit (顯示)宣告C#型別
- 型別轉換運算子型別
- C# 隱式型別轉換(轉載)C#型別
- c++primer——過載運算與型別轉換C++型別
- JavaScript隱式型別轉換JavaScript型別
- MySQL 隱式型別轉換MySql型別
- 重讀 Swift 之二:Operator Declaration(運算子過載)Swift
- Js型別轉換之相等運算子[初級]JS型別
- JavaScript 隱式資料型別轉換JavaScript資料型別
- 如何實現隱式型別轉換型別
- 談談 MySQL 隱式型別轉換MySql型別
- C++隱式類型別轉換C++型別
- C++隱式型別的轉換C++型別
- C++ 隱式類型別轉換C++型別
- 索引失效系列——隱式型別轉換索引型別
- 資料型別的隱式轉換資料型別
- 有趣的JavaScript隱式型別轉換JavaScript型別
- JavaScript隱式型別轉換趣解JavaScript型別
- ECMAScript5.1的運算子、型別轉換總結型別
- golang 快速入門 [8.4]-常量與隱式型別轉換Golang型別
- javascript運算中的隱式型別轉換簡單介紹JavaScript型別
- Java資料型別的顯式轉換和隱式轉換Java資料型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- C語言的隱式型別轉換C語言型別
- JavaScript的隱式型別轉換淺析JavaScript型別
- C++ 過載運算子和過載函式C++函式
- 過載運算子、解構函式函式
- JavaScript資料型別與運算子JavaScript資料型別
- c++隱式型別轉換存在的陷阱C++型別
- Oracle隱式型別轉換導致索引失效Oracle型別索引
- 「譯」JavaScript 的怪癖 1:隱式型別轉換JavaScript型別
- 運算子過載
- 過載運算子
- 建構函式定義的隱式型別轉換函式型別
- 徹底理解c++的隱式型別轉換C++型別
- 資料型別隱式轉換導致的阻塞資料型別