Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将单个数据列传递给方法_C# - Fatal编程技术网

C# 将单个数据列传递给方法

C# 将单个数据列传递给方法,c#,C#,我希望将单个数据行列传递给执行以下验证的方法: SomeMethod(myDataRow["Col_Name"]) 我想做一些检查并返回一个值。无法确定如何仅为该数据行传递该列值。我可以传递整个数据行,但我想避免这样 这样做的目的是传递列引用和可能的类型描述,类似于: SomeMethod(dataRowColRef, "ThisColShouldBeAnInt"); some方法将根据值是否为int、string或其他类型来验证该值,并返回一个“好”值,该值将使程序的其余部分满意 想法?在

我希望将单个数据行列传递给执行以下验证的方法:

SomeMethod(myDataRow["Col_Name"])
我想做一些检查并返回一个值。无法确定如何仅为该数据行传递该列值。我可以传递整个数据行,但我想避免这样

这样做的目的是传递列引用和可能的类型描述,类似于:

SomeMethod(dataRowColRef, "ThisColShouldBeAnInt");
some方法将根据值是否为int、string或其他类型来验证该值,并返回一个“好”值,该值将使程序的其余部分满意


想法?

在将值传递到方法之前,应将值从对象转换为任何对象,即:

SomeMethod((int)myDataRow["Col_Name"])
如果需要修改该值,则会使事情复杂化;如果需要,最好返回一个新值并重新设置,即:

myDataRow["Col_Name"] = fixField((int)myDataRow["Col_Name"])

你不能递一张收集单吗?列表,IEnumerable或其他?为什么
SomeMethod(myDataRow[“Col_Name”])
不起作用,假设签名像
SomeMethod(object colValue)
?这有点奇怪。为什么要验证数据库中列的数据类型?你不能控制你的数据库结构吗?通常,列的数据类型是在运行时之前推断的,否则性能会受到影响。DataColumn已具有DataType属性。它不会接受错误的类型。您正在尝试验证DataColumn的内容吗?@Diego首先,数据表中的数据不必来自数据库。其次,
DataRow
的索引器方法返回一个
对象
。编码者知道类型,但编译器不知道;他只需要投下它。