gpt4 book ai didi

将对象读取为指定类型的 C# 扩展方法

转载 作者:行者123 更新时间:2023-11-30 15:06:34 25 4
gpt4 key购买 nike

我经常发现以下场景:您有一个要转换为整数的字符串。

但首先你必须检查:

        string sId = null;

if (!string.IsNullOrEmpty(sId))
{
return int.Parse(sId);
}
else
{
return -1;
}

但我想要的是能够做到这一点:

sId.As<int>(-1)

所以我能做的就是写一个扩展方法如下:

public static class ObjectExtensions
{
public static T As<T>(this object instance, T defaultValue)
{
try
{
if (instance != null)
{
return (T)Convert.ChangeType(instance, typeof(T));
}
}
catch
{
}
return defaultValue;
}
}

我的问题是有人建议这是一个好方法吗?

.NET 3.5 或更高版本中是否有任何内置的东西可以做到这一点?

最佳答案

我不会捕获抛出的异常,而是检查类型是否可以更改。在 this question描述了一个 CanChangeType 方法。

关于将对象读取为指定类型的 C# 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com