使用对象类型以避免数据转换
本文关键字:数据 转换 对象 类型 | 更新日期: 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。