我已經瀏覽了許多類似於這個問題的問題,但沒有一個真正觸及我想要做的事情。我所試圖做的是從外部源讀取的變量還包括它們的數據類型爲字符串數組列表:帶多種返回類型的方法
例子:
ID/Key Type Value/Data;
varName1 bool true;
varName2 string str;
varName3 int 5;
我然後存儲這些對象到詞典中包含多個字符串的對象,ID也用作關鍵字。
我想要做的是現在創建一個方法,該方法使用switch語句將字符串轉換爲正確的數據類型,並返回它,而無需在方法調用中指定任何內容。該函數應該是這個樣子:
public ??? Method(string key)
{
if(dictionary.ContainsKey(ID))
{
Var temp = dictionary[ID];
switch (temp.Type)
{
case "bool":
return Convert.ToBoolean(temp.Value);
case "int"
return Convert.ToInt(temp.Value);
case "string"
return temp.Value;
}
}
return "NULL";
}
方法調用應該是這個樣子:
int x = Method(string key);
string word = Method(string key);
boolean isTrue = Method(string key);
也許我錯過了一些東西,但我還沒有找到的東西,確實相當的東西喜歡這個。對此的任何和所有想法也是受歡迎的。
對不起,沒有這樣的事情在C#中。一種方法有一個固定的返回類型。你可以使用'object'作爲你的返回類型,但你必須施放。 – adv12
你必須使該方法通用才能工作。當你使用它時,它最終會看起來像'string word =方法(key)'。你也必須做'bool?'和'int?'因爲當你沒有找到密鑰時你想返回'null'。 –
juharr
如果你的值被存儲爲'Object',你可以做'(T)值'。什麼阻止你從'string word =(string)方法(string key);',給定,方法返回'object' –