任何方式来获取元组<>项的类型

Kum*_*mar 3 .net c# reflection

def在哪里

IEnumerable<Tuple<string, double>> GetValues()
{
   ....
       yield return new Tuple<string,double>(dataRow["<field>"].ToString(),
               (double)Convert.ChangeType(dataRow["<field>"], typeof(double)));
   ....

   // and more code similar to above based on other custom logic

}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,很多用于加倍的cast/coerc'ng可能仍会改回字符串或其他数据类型

想知道是否有办法在签名中定义Tuple的数据类型,这样我就可以创建一些通用助手而不用担心在某处丢失某些转换

反思应该可以吗?我希望 !

Chr*_*ain 5

如果这是DataRow类,那么你有一个很好的扩展方法,叫做Field.

IEnumerable<Tuple<T1, T2>> GetValues<T1, T2>(String field1, String field2)
{
   ....
       yield return new Tuple<T1,T2>(dataRow.Field<T1>("<field>"),
               dataRow.Field<T2>("<field>"));
   ....
}
Run Code Online (Sandbox Code Playgroud)