繁体   English   中英

从泛型方法返回null值

[英]Returning null value from generic method

所以我有这个方法:

    internal K GetValue<T, K>(T source, string col) where T : IBaseObject
    {
        string table = GetObjectTableName(source.GetType());
        DataTable dt = _mbx.Tables[table];
        DataRow[] rows = dt.Select("ID = " + source.ID);
        if (rows.Length == 0) return K;

        return (K) rows[0][col];
    }

如果没有找到行,我希望能够返回null或某种空值。 这样做的正确语法是什么?

你可以返回默认值(K),这意味着如果K是引用类型,你将返回null,或者对于int是0,对于char是'\\ 0',依此类推......

然后,您可以轻松验证是否返回了:

if (object.Equals(resultValue, default(K)))
{
    //...
}

你必须在K类型参数上使用类泛型约束(因为类 - 而不是结构 - 可以为空)

internal K GetValue<T, K>(T source, string col)
        where K : class
        where T : IBaseObject
{
    // ...
    return null;
}

您可以return default(K)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM