我正在修復遺留系統上的錯誤。它有一個回傳型別的函式(string, IDictionary<string, object>)。我無法更改方法簽名。我想宣告一個方法回傳型別的變數。我試過這個,但它給了我一個錯誤。
var sqlQuery = new (string, IDictionary<string, object>)
uj5u.com熱心網友回復:
這是一個值元組型別(在 C# 7.0 及更高版本中可用),您可以使用目標型別的新運算式(自 C# 9 起)用默認值填充它:
(string, IDictionary<string, object>) sqlQuery = new();
或使用default:
(string, IDictionary<string, object>) sqlQuery = default;
或提供所需型別的值:
var sqlQuery = (someString, someDictionary);
// or
var sqlQuery = ((string)null, (IDictionary<string, object>)null);
或者只使用回傳元組的方法的結果:
var sql = MethodReturningTuple();
uj5u.com熱心網友回復:
元組可以有多種資料型別,這就是函式在您的情況下回傳的內容。
你可以創建一個var
var sqlQuery = method();
在除錯時,您可以驗證資料是否正確填充到元組中。
或者您可以為每個方法回傳創建特定型別
(string, IDictionary<string, object>) sqlQuery = method();
最好使用 var 因為它可以隨方法簽名而改變。話雖如此,每個專業人士都有缺點,如果更改型別,代碼可能會失敗。C# 是型別安全的,并且(希望)編譯會檢測到型別更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494922.html
