C#方法报错:无法赋值给方法组及DataRow转换失败求解
解决GetDropDownValues方法的两个常见错误
咱们一个个来拆解这两个问题,都是C#里操作方法和DataTable时很容易踩的小坑,别担心!
错误1:无法给GetDropDownValues赋值,提示它是方法组
问题原因
你把静态方法当成了变量来赋值(比如写了GetDropDownValues = xxx;这类代码),但方法是用来调用执行的,不是用来被赋值的。编译器把GetDropDownValues识别为“方法组”(即方法本身),自然不允许给它赋值。
修复方法
正确的做法是调用这个静态方法,并把它的返回值存储到变量中。假设你的方法返回DataTable,示例代码如下:
// 正确:调用静态方法,接收返回结果 DataTable dropDownResult = YourClass.GetDropDownValues("目标字段名", "目标表名");
避免这种错误写法:
// 错误:直接给方法组赋值 YourClass.GetDropDownValues = someDataTable;
错误2:执行InsertAt时无法将方法组转换为DataRow
问题原因
dtRetTable.NewRow是DataTable的一个方法,不是属性。如果不加括号(),编译器会把它当作“方法组”(方法本身),而不是执行方法后返回的DataRow实例,所以会报错无法转换。
修复方法
给NewRow加上括号,调用它来生成新的DataRow对象,再插入到指定位置:
// 正确:调用NewRow()获取新行,再插入到索引0的位置 dtRetTable.Rows.InsertAt(dtRetTable.NewRow(), 0);
内容的提问来源于stack exchange,提问作者MikeD
相关产品推荐
相关产品推荐

