C#類中顯示與隱匿轉(zhuǎn)換操作符同時(shí)只能實(shí)現(xiàn)一個(gè)
// 顯示轉(zhuǎn)換操作符
static public explicit operator Salary(int n)
{
Salary s = new Salary(n);
return s;
}
// 隱式轉(zhuǎn)換操作符
static public implicit operator Salary(int n)
{
Salary s = new Salary(n);
return s;
}
Salary s1 = 100; // 隱匿轉(zhuǎn)換
Salary s2 = (Salary)100; //顯示轉(zhuǎn)換
// 實(shí)現(xiàn)可比較接口
using System;
class Salary : <font color=blue>IComparable<Salary></font>{
public Salary(int val){
this.val = val;
}
public int val
{
set;
get;
}
override public string ToString()
{
return val.ToString();
}
<font color=blue>
public int CompareTo(Salary salary)
{
return this.val.CompareTo(salary.val);
} </font>
}
// 實(shí)現(xiàn)比較器
using System.Collections.Generic;
class SalaryComparer : <font color=blue>IComparer<Salary></font>
{
<font color=blue>
public int Compare(Salary a, Salary b)
{
return a.CompareTo(b);
}</font>
}
List<Salary> ls = new List<Salary>();
ls.Add(new Salary(3));
ls.Add(new Salary(2));
ls.Add(new Salary(1));
ls.Sort(<font color=blue>new SalaryComparer()</font>);
foreach(Salary s in ls)
{
Debug.Log(s); // 1 2 3
}