本文Valued Conversions通過凱夫林·海尼給出所謂的變體值類型功能的動機,以及一個C++實現的輪廓。這是一個很好的閱讀,它涵蓋了我希望在C#中可用的內容:一種可以保存不同值的不同的value-types。是否可以創建變量值類型?
我一直沒能找到,雖然在C#這樣的事。 SO上的一些類似的問題有不令人滿意的答案和評論,比如「這可能不是你想要的」。這令我感到驚訝,因爲它看起來像通常需要的功能。亨尼的C++ boost::any類被廣泛使用。
是沒可能建立在C#中這個功能?
編輯:爲了迴應其中的一個答案,我不認爲泛型會做到這一點。使用泛型要求開發人員知道變量所持有的變量類型,並且該類型對於該變量也變得不可變。但我所說的Variant
類型應該能夠擁有不同的類型。例如,函數Variant ReadValue()
可以從文件中讀取條目,解析它,然後相應填充Variant
值,然後將其返回。來電者事先不知道返回的Variant
中包含哪種類型。
只要將它聲明爲'Object'類型呢? – bhamlin
@bhamlin會使用「對象」是適當的?我不知道,因爲我對C#相當陌生。這種方法聽起來過於通用,不過我喜歡,因爲'Object'基本上可以是任何東西,包括非值類型。 –