默認初始過載,我決定添加自定義的獲取/的SetValue(與INotifyPropertyChanged的)輔助功能在我ViewModelBaseClass類似於安全的方法提到here類型。但我想添加可選的初始化器到具有理智默認值的Get幫助函數。不幸的是,default關鍵字將引用類型初始化爲null,可爲空的值類型爲null,並將值類型初始化爲默認值。如何允許吸氣幫手
我想製作一個通用函數,它將由Get helper調用,該函數返回類型的默認值,Numlable的BaseType的默認值(如果可能)以及具有默認構造函數的引用類型的默認構造函數。 對於不執行我想這可能返回null構造函數的引用類型。但搞清楚如何在一個叫新T()與默認(T),如果別人是很難的,編譯器說,它不具備正確的約束(因爲當然約束在運行時檢查)。
作爲替代,我想我可以使用的Get輔助方法,其中( 他說喬恩斯基特的http://msmvps.com/blogs/jon_skeet/archive/2010/11/02/evil-code-overload-resolution-workaround.aspx:
這可能是我寫過的最可怕的代碼
拜託,請不要在現實生活中使用它,使用不同的方法名稱 或類似的東西。 不過,這是一個有趣的小拼圖,不是嗎?
)作爲一個好處,它可能會允許我強制引用類型沒有默認構造函數來指定一個非可選的init Func。