gpt4 book ai didi

c# - C# 中如何确定变量类型是否支持给定运算符

转载 作者:行者123 更新时间:2023-12-02 19:29:05 25 4
gpt4 key购买 nike

我有这个问题:

我想创建一个支持 +、-、*、/运算符的通用类。例如 Matrice 类。问题是,有些数据类型支持上述所有运算符,有些支持其中的一部分,有些则根本不支持。我想让我的类识别支持上述哪些运算符,如果其中一些运算符不受支持,我希望看到一个 COMPILE TIME 错误。

示例:

Matrice<int> :我们可以做+、-、/、*,因为 int 重载/定义了这些运算符

Matrice<string> :我们只能做 +,因为字符串只有 + 重载/定义,如果我们尝试
Matrice<string> a = new Matrice<string>;
Matrice<string> b = new Matrice<string>;
Matrice<string> c = a*b;
我们应该得到一个编译时间错误

Matrice<CustomClass> :如果 CustomClass 仅具有/和 + 重载(例如)Matrice<CustomClass>应仅支持/和 + 运算符

最佳答案

不幸的是,这是不可能的。运算符重载是静态的,因此您无法使用接口(interface)或继承来确保考虑您的运算符。查看更多here

关于c# - C# 中如何确定变量类型是否支持给定运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255357/

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