C#使用泛型类约束,计算两个数的+-/
时间: 2024-10-19 17:05:47 浏览: 58
浅谈c# 泛型类的应用
在C#中,泛型是一种强大的特性,它允许你编写一次代码并用于多种数据类型。当你创建一个泛型类或方法时,可以添加类型约束来指定哪些类型的参数是合法的。例如,如果你想创建一个计算两个数加减乘除的泛型类,你可以这样设计:
```csharp
public class GenericMath<T> where T : struct, IConvertible // 约束T为结构体并且实现了IConvertible接口
{
public static T Add(T num1, T num2) => (T)(object)(num1 + Convert.ChangeType(num2, typeof(T)));
public static T Subtract(T num1, T num2) => (T)(object)(num1 - Convert.ChangeType(num2, typeof(T)));
public static T Multiply(T num1, T num2) => (T)(object)(num1 * Convert.ChangeType(num2, typeof(T)));
public static T Divide(T num1, T num2) => (T)(object)(num1 / Convert.ChangeType(num2, typeof(T)));
// 其他运算...(这里省略)
}
```
在这个例子中,`where T : struct, IConvertible`是类型约束,意味着`T`必须是结构类型并且能够转换成`T`类型。这样,你可以实例化这个类并传入整型、浮点型等数值类型。
阅读全文