使用对象类型以避免数据转换

本文关键字:数据 转换 对象 类型 | 更新日期: 2023-09-27 18:19:59

如果我的属性类使用对象类型,会有性能问题吗?而不是分别为它们分配数据类型并逐个转换。我使用了object来避免转换并提高性能。还是我做错了?请引导我。谢谢。

DataSet ds = new DataSet();
List<DynamicData> details = new List<DynamicData>();
Queries qr = new Queries();
ds = qr.GetCacheableSP();
foreach (DataRow dtrow in ds.Tables[0].Rows)
{
            DynamicData tbl_roads_avg_roughness = new DynamicData();
            tbl_roads_avg_roughness.site_category_func_class = dtrow["site_category_func_class"];
            tbl_roads_avg_roughness.csurvey_with_data = (dtrow["csurvey_with_data"]);
            tbl_roads_avg_roughness.ctotal_length = (dtrow["ctotal_length"]);
            tbl_roads_avg_roughness.caverage_iri = (dtrow["caverage_iri"]);
            tbl_roads_avg_roughness.date_imported = dtrow["date_imported"];
            tbl_roads_avg_roughness.color = dtrow["color"];
            tbl_roads_avg_roughness.csurvey_with_data_total = (dtrow["csurvey_with_data_total"]); ;
            tbl_roads_avg_roughness.ctotal_length_total = (dtrow["ctotal_length_total"]);
            tbl_roads_avg_roughness.tbl_roads_avg_roughness_access = true;
            details.Add(tbl_roads_avg_roughness);
    }
return details.ToArray();
public class DynamicData
{
    public object site_category_func_class { get; set; }
    public object csurvey_with_data { get; set; }
    public object ctotal_length { get; set; }
    public object caverage_iri { get; set; }
    public object date_imported { get; set; }
    public object color { get; set; }
    public object csurvey_with_data_total { get; set; }
    public object ctotal_length_total { get; set; }
    public object tbl_roads_avg_roughness_access { get; set; }
}

使用对象类型以避免数据转换

这是过早的优化。强类型不会比处理动态/对象类型带来更多的开销。

随着你的应用程序的发展,你正在牺牲编译时检查、智能感知以及C#提供的基本上所有语言功能的安全网。

如果强类型化(或序列化)让您很困扰,请使用函数式语言,甚至使用node.js。