首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将int与<T>相乘

将int与<T>相乘
EN

Stack Overflow用户
提问于 2019-06-27 02:59:29
回答 1查看 94关注 0票数 0

我试图以一种通用的方式编写这个函数,这样它就可以处理浮点型、双精度型、十进制或整型。

除了(increment * ti)给出的语句:“运算符*不能应用于T和int类型的操作数”之外,它是有效的。

代码语言:javascript
复制
public static List<T> RangeIncrement<T>(T start, T end, T increment)
{
    T range = (((dynamic)end - (dynamic)start) / increment) + 1;

    if (TryCast(range, out int endRange))
    {
        return Enumerable
            .Repeat(start, endRange)
            .Select((tr, ti) => tr + (increment * ti))
            .ToList();
    }

    return null;
}
EN

回答 1

Stack Overflow用户

发布于 2019-06-27 03:16:05

只有为数不多的几种类型可以执行乘法运算,而且许多类型都可以隐式转换为其他类型。而不是声明一个泛型类型T,它几乎可以是任何类型,可能支持也可能不支持乘法,您只需编写覆盖所有这些选项的重载即可。

This chart显示了隐式转换。在此基础上,如果您编写支持intdoubledecimal的方法,就应该涵盖所有内容。

在测试过程中,您可能会发现,对于一种类型,它可以正常工作,但对于另一种类型,它却不能正常工作。我会为所有这三种类型编写单元测试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56779446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档