繁体   English   中英

如何声明一个类型的(字符串,IDictionary<string, object> )

[英]How to declare a type of (string, IDictionary<string, object>)

我正在修复遗留系统上的错误。 它有一个返回类型为(string, IDictionary<string, object>)的函数。 我无法更改方法签名。 我想声明一个方法返回类型的变量。 我试过这个,但它给了我一个错误。

var sqlQuery = new (string, IDictionary<string, object>)

这是一个值元组类型(在 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();

元组可以有多种数据类型,这就是函数在您的情况下返回的内容。

你可以创建一个var

 var sqlQuery = method();

在调试时,您可以验证数据是否正确填充到元组中。

或者您可以为每个方法返回创建特定类型

(string, IDictionary<string, object>) sqlQuery = method();

最好使用 var 因为它可以随方法签名而改变。 话虽如此,每个专业人士都有缺点,如果更改类型,代码可能会失败。 C# 是类型安全的,并且(希望)编译会检测到类型更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM