回答
對象是普通的數據類型,你可以這樣操縱它。
private object _classmember;
public object classmember
{
get { return _classmember; }
set
{
_classmember = value;
if (_classmember.GetType()==typeof(Boolean))
{
//Do your stuff
MessageBox.Show("boolean");
}
if (_classmember.GetType() == typeof(int))
{
//Do your stuff
MessageBox.Show("int");
}
if (_classmember.GetType() == typeof(double))
{
//Do your stuff
MessageBox.Show("double");
}
//Declare all the necessary datatypes like the above
}
}
用法會像
classmember = true;
classmember = 1;
classmember = 6.6;
聲明爲object
,可以在後來is
測試:
public object MyProperty { get; set; }
public void DoSomething()
{
if(MyProperty is bool)
{
bool mp = MyProperty as bool;
// do something with boolean type mp
}
else if(MyProperty is string)
{
string mp = MyProperty as string;
// do something wit string type mp
}
// ....
}
在Visual Studio的新版本(我認爲2015年版本以上),你可以結合類型檢查和演員:
public void DoSomething()
{
if(MyProperty is bool mp)
{
// do something with boolean type mp
}
else if(MyProperty is string mp)
{
// do something wit string type mp
}
// ....
}
與通用類相比,這種方法的好處是屬性類型可以在對象生命週期中更改。
在大多數語言中都有Object數據類型,其中所有其他數據類型都從中繼承。
你可以使用一個通用類:
public class MyThing<T>
{
public T MyProperty { get; set; }
}
現在你說什麼類型將是當你創建類:
var myIntObject = new MyThing<int>();
var myStringObject = new MyThing<string>();
myIntObject.MyProperty = 5;
myStringObject.MyProperty = "Hello world";
我喜歡這種方法。但是,如果指定值的類型可能在對象生存期中發生更改,則它有限制。沒有OP告訴他更多關於他的用例的信息,我們就無法得知它。如果類型不會改變,那麼泛型方法是更清潔 –
嗯,這是可能的,但我會假設,如果數據類型正在改變對象的生命週期,那裏有代碼味道可能需要修復。 – DavidG
我完全同意 –
- 1. 可以是一個類型的成員是一個目標?
- 2. 自定義ValidationAttribute多種數據類型
- 3. 成員函數參數可以是相同的類類型嗎?
- 4. 如何用可尋址的成員定義用戶定義的數據類型?
- 5. 我們可以在excel-vba中定義一個可以有多個預定義值的數據類型嗎?
- 6. 完成一種類型的數據
- 7. 專業模板類成員函數只有一種類型的
- 8. 我可以定義一個可以採用多種可能值類型的泛型嗎? (VB.NET)
- 9. 是否可以將塊定義爲類的成員?
- 10. Bootstrap:是否可以定義兩種類型的鏈接?
- 11. 有沒有一種方法可以在定義類的類中引入一個泛型類型的約束?
- 12. 定義一個類型的數組類
- 13. 可以在頭文件中定義一個非常長的類函數成員?
- 14. 是否可以更改SQL用戶定義的數據類型?
- 15. 爲每個類成員編寫一個類的成員類型是否有意義?
- 16. 一種類型與多種類型
- 17. C#類可以返回或是多種類型的控件
- 18. 是否可以強制參數成爲某種類型的鍵?
- 19. 匿名類型是否可以繼承另一種類型?
- 20. C++一個類可以包含一個類的成員,它是朋友嗎?
- 21. 類型成員的多壓倒一切
- 22. 我可以指定一個類實例可以轉換爲某種類型嗎?
- 23. 實體成員應該是原始數據類型還是java數據類型?
- 24. 生成一個用戶定義的數據類型在Haskell
- 25. 獲取給定參數可變類的成員由類型
- 26. 可以Doctrine 1.2處理自定義數據類型,如幾何數據類型?
- 27. 定義數據類型多維數組
- 28. 獲取類型的多個成員
- 29. 重構一個它可以處理多種類型的方法?
- 30. 使一種類型成爲一種類型或另一種類型
使對象。 – jdweng
創建泛型類並在實例化時定義類型 –
泛型是否適合您? – DavidG