close
文章出處
此idea是由我處理一個帖子的時候突然蹦出來的,感覺可能有的朋友需要,就將我的回復帖在我的blog,由于時間問題,我沒有寫中文版的,而是直接用的英文,希望大家見諒,不過代碼會告訴大家我的思路,其實也沒多少可以解釋的,我認為這只是一個小技巧罷了。
I use the Implicit Conversion Operator to help us do the similar things as we inherit from the Boolean type, but MyBool type is not a Boolean type.
And then we can override some methods like Equal method, ToString method and so on.
class TestProgram { static void Main(string[] args) { MyBool mb = true; mb.PrintMessage("hello MyBool DataType!"); Console.WriteLine(mb.ToString()); Console.ReadLine(); } } public class MyBool { private bool myBool; public MyBool() { } public MyBool(bool b) { myBool = b; } // implicit bool to MyBool conversion operator public static implicit operator MyBool(bool b) { return new MyBool(b); // implicit conversion } // implicit MyBool to bool conversion operator public static implicit operator bool(MyBool mb) { return mb.myBool; // implicit conversion } public void PrintMessage(string msg) { Console.WriteLine(msg); } public string ToString() { return myBool.ToString(); } }
大家有興趣的話,可以點擊下面的鏈接進入論壇原帖:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a7ca771d-394d-4a5a-b1f7-4c6729cf50cd/
PS:我的同事開發了一個MSDN論壇的小工具,有興趣的朋友可以試試,此工具已開始在國內推行:
不含病毒。www.avast.com |
全站熱搜
留言列表