C# 获取数据行字段或默认值的函数

C# 获取数据行字段或默认值的函数,c#,extension-methods,datarow,C#,Extension Methods,Datarow,我有一个旧代码,它定义了以下实用程序函数 string kod_custno_billto = DbUtil.RowStringValue(row, "kod_custno_billto", ""); 其中行为DataRow类型,如果NULL在数据库中,则第三个参数为所需的默认值。它是这样实现的: static public string RowStringValue(DataRow row, string column_name, string default_value) { st

我有一个旧代码,它定义了以下实用程序函数

string kod_custno_billto = DbUtil.RowStringValue(row, "kod_custno_billto", "");
其中
DataRow
类型,如果
NULL
在数据库中,则第三个参数为所需的默认值。它是这样实现的:

static public string RowStringValue(DataRow row, string column_name, string default_value)
{
    string result = default_value;
    if (row.Table.Columns.Contains(column_name) && !Convert.IsDBNull(row[column_name]))
        result = Convert.ToString(row[column_name]);
    return result;
}
我正在考虑使用现有的
DataRowExtensions.Field
,如下所示:

string kod_custno_billto = row.Field<string>("kod_custno_billto");
string kod_custno_billto=行字段(“kod_custno_billto”);

大量替换旧代码所缺少的功能是默认值,而不是返回的
null
。你将如何实现这一点?

@dymanoid是的,我正在考虑。但是我的C语言不是很流利。我将能够从该函数创建扩展函数。但是,基于所需的输出类型,有一组这样的函数。为此,我需要模板扩展。此外,这种情况可能已经实现或很简单(我只是看不出明显的情况)。可能是
行字段(“kod_custno_billto”)??我的违约是想要的解决方案吗?
行字段(“kod_custno_billto”)??我的违约空合并就可以了,除非您的问题中没有涉及到其他情况。