通用通用扩展方法(原文如此!)
是否可以向泛型类添加独立于该类的实例泛型类型的扩展方法?
我想编写一个扩展方法来处理 Nullable 值。到目前为止,该方法如下所示:
public static object GetVerifiedValue(this Nullable<> obj)
{
return obj.HasValue ? obj.Value : DBNull.Value;
}
但编译器不接受 Nullable
类型。
我有什么办法可以做到这一点吗?
注意:我使用的是 C# 3.0、.NET 3.5。
Is it possible to add an extension method to a generic class that is independent of that class' instance generic type?
I want to write a extension method for handling Nullable values. So far, the method looks like this:
public static object GetVerifiedValue(this Nullable<> obj)
{
return obj.HasValue ? obj.Value : DBNull.Value;
}
But the compiler doesn't accept the Nullable<>
type.
Is there any way I can do this?
Note: I'm using C# 3.0, .NET 3.5.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只需将其设为通用方法即可:
调用代码在调用时可以使用类型推断:
编辑:另一种选择是使用可空类型的装箱行为:
当然,这并不能验证您是否正在尝试传递以下表达式:可为空的值类型...
Just make it a generic method:
The calling code can use type inference when calling it:
EDIT: Another option is to use the boxing behaviour of nullable types:
Of course that doesn't verify that you're trying to pass in an expression of a nullable value type...