【问题标题】:Receiving data in specific data type variable or generic variable接收特定数据类型变量或泛型变量中的数据
【发布时间】:2014-06-03 15:48:26
【问题描述】:

我正在调用网络服务并捕获提供的数据。有些数据类型很复杂,需要一些体操才能将我想要的数据放入具有数据特定类型的变量中。

  • 例子:

        wsModule.setModuleOutput smo = new wsModule.setModuleOutput();
        smo = client2.setModule(smi);
    
        wsModule.resultDetailType[] rdtArray;
        wsModule.resultDetailType rdt = new wsModule.resultDetailType();
        rdtArray = new wsModule.resultDetailType[] { rdt };
    
        rdtArray = smo.modules;
    

好的,上面你可以看到,要获得一个模块,我必须声明一个resultDetailType 的数组,一个resultDetailType 并将后者插入到数组中。然后我给数组提供数据。

另一种方法更简单:不声明任何类型并将数据放入var 类型变量中。

  • 例子:

        wsModule.setModuleOutput smo = new wsModule.setModuleOutput();
        smo = client2.setModule(smi);
    
        var x = smo.modules.FirstOrDefault();
    

我的问题是,哪个更好?我应该使用哪个?

[编辑] 应考虑性能和编码时间:大约有 200 个 Web 服务可供访问

注意:

找出存储数据的正确类型不仅仅是添加 3 行代码:实际理解和掌握它也需要几分钟时间。

【问题讨论】:

  • 为什么不使用第二种类型,因为编译器在使用var 关键字时会将infer 类型var x = smo.modules.FirstOrDefault(); 这就是我要做的

标签: c# .net variables variable-types


【解决方案1】:

如果smo.modules 是可枚举的,则使用FirstOrDefault()。无需创建中间变量。

“哪个更好”有点含糊。您能否提供有关您正在寻找的内容的更多信息?

【讨论】:

  • 例如,在性能方面哪个更好。此外,考虑到声明特定数据类型需要一些时间,如问题中所述。
  • 好的。避免过多的成员创建会更高效。 FirstOrDefault() 是一个非常简单的属性访问器。如果可以,请使用它。
  • 我希望得到一个更具体的答案,但我会接受这个。谢谢@cjcurrie
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 2018-04-21
相关资源
最近更新 更多