Null 或值的 C# 扩展方法

发布于 2024-09-28 14:49:18 字数 379 浏览 3 评论 0原文

如何编写应该检查对象值的扩展方法,如果对象为 null 那么 它应该返回 null 否则值{不在接收端进行转换}。

就像...

public static object GetDefault(this object obj)
{
    if (obj == null) return null;
    else return obj;
}

我的意思是,如果不进行强制转换,我可以检查 null 吗?

int? a=a.GetDefault();

ContactType type=type.GetDefault();   [For EnumType]

string  s=a.GetDefault()

How to write an extension method that should check value of the object,if object is null then
it should return null otherwise value{without doing casting at receiving end}.

something like...

public static object GetDefault(this object obj)
{
    if (obj == null) return null;
    else return obj;
}

I mean without casting can i check for null?

int? a=a.GetDefault();

ContactType type=type.GetDefault();   [For EnumType]

string  s=a.GetDefault()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一直在等你来 2024-10-05 14:49:19

这应该可行:

public static class ExtensionMethods
{
    public static T GetObject<T>(this T obj, T def)
    {
        if (default(T).Equals(obj))
            return def;
        else
            return obj;
    }
}

我添加了一个参数 def 因为我希望您在 obj 为 null 时返回此默认值。否则,您始终可以省略 T def 参数并返回 null

This should work:

public static class ExtensionMethods
{
    public static T GetObject<T>(this T obj, T def)
    {
        if (default(T).Equals(obj))
            return def;
        else
            return obj;
    }
}

I've added a parameter def because I expected you to want to return this default value when obj is null. Otherwise, you can always leave out the T def parameter and return null instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文