我在LINQ编写的时候看到,当一个值分配给某个字段时,有时会以这种方式表["字段"] 以及其他任何类似的 Table.Field 但有人可以解释一下我的差异吗?
例如,在修改字段时:
var ttAbccode_xRow =
(from ttAbccode_Row in ds.ABCCode select ttAbccode_Row).FirstOrDefault();
if (ttAbccode_xRow != null) {
ttAbccode_xRow["PI"] = 3.1416;
}
或
if (ttAbccode_xRow != null) {
ttAbccode_xRow.PI = 3.1416;
}
答案 0 :(得分:0)
通过索引器(方括号)访问字段将返回对象数据类型。这意味着您的编译器无法检测数据类型不兼容。你可以帮助例如字符串值(例如" abcd")并且你不会在设计时获得错误,但是最迟在运行时。
第二种方法(如果在结果集中可用)更安全。您的属性将具有适当的数据类型,因此编译器将在设计时检测数据类型不兼容。
如果我有两种可用的访问方法,我总是更喜欢第二种。它不易出错。