????C#?????к????????????????????????????C# explicti??implicit????????????????????????????????????????????????????檔
????C# explicti??implicit?????
??????C# explicti??implicit????????????????????????????????????????????????????
??????explicti?????????????? A -> B ???????????????????B = (B)A??
??????implicit ?????????????? B -> A ??????????A = B??
?????????????????????????????????????????????????????implicit??????????????????????????????????Щ??????羫?????????????????? explicti??????????????????????????????
?????????
using System;
using System.Collections.Generic;
using System.Text;
namespace Example23
{
class Program
{
//????????????????ξ??????“??????????”--????????????????????????
class Immortal
{
public string name;
public Immortal(string Name)
{
name = Name;
}
public static implicit operator Monster(Immortal value)
{
return new Monster(value.name + "???????????????·????ɡ?????");
}
}
class Monster
{
public string name;
public Monster(string Name)
{
name = Name;
}
public static explicit operator Immortal(Monster value)
{
return new Immortal(value.name + "?????????????????????????");
}
}
static void Main(string[] args)
{
Immortal tmpImmortal = new Immortal("???????");
//??????
Monster tmpObj1 = tmpImmortal;
Console.WriteLine(tmpObj1.name);
Monster tmpMonster = new Monster("?????");
//??????
Immortal tmpObj2 = (Immortal)tmpMonster;
Console.WriteLine(tmpObj2.name);
Console.ReadLine();
}
}
}