C# 泛型,约束特定结构

标签 c# generics struct

是否可以限制通用方法只接受特定类型的结构?

我相信这没问题:

string Add<T>(object value, T expiration) where T : struct; 

但事实并非如此:

string Add<T>(object value, T expiration) where T : Struct1, Struct2; 

注意:我希望将其约束为 DateTime 或 TimeSpan 的结构,因此我无法控制它们。

谢谢

最佳答案

不,因为结构是密封的(您不能创建 ValueType 的子类)。

相反,考虑让您的结构实现一个接口(interface),然后将其用作约束,如下所示:

string Add<T>(object value, T expiration) where T : struct, IMyInterface

关于C# 泛型,约束特定结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1815312/

相关文章:

c++ - 无法从 '_int64' 转换为 'Data *'

c - 在 C 中查找打包结构大小的可移植方法

xml - 嵌套的 XML/JSON 结构标记,定义结构的正确方法是什么?

c# - 在多个列表之一中更新对象的最佳方法

c# - 为什么 "object[]"不起作用?

Java 泛型,一种强制执行父类(super class)型或子类型的方法

objective-c - Objective-C 中的 <ObjectType>

java - 使用 ArrayList 类型错误?

c# - ASP.NET MVC 删除了 Controller QueryString 操作

c# - .NET 实例化错误