小编Mas*_*mnd的帖子

C#泛型以避免代码重复?

我对来自Java的C#相当陌生,我想知道是否有一种简单的方法可以避免涉及原始类型的代码重复:


private Boolean AtLeastOneBufferItemIsNonZero(int[] Buffer)
{
    Boolean result = false;
    foreach (int Item in Buffer)
    {
        result = !(Item == (int)0);
        if (result) break;
    }
    return result;
}

private Boolean AtLeastOneBufferItemIsNonZero(float[] Buffer)
{
    Boolean result = false;
    foreach (float Item in Buffer)
    {
       result = !(Item == (float)0);
       if (result) break;
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我找不到一个"数字"超类型,以便我可以比较一个泛型实现中的"项目"(我不介意拳击的性能损失,虽然我明白在.NET中没有这样的东西?):


//SOMETHING LIKE THIS?
private Boolean AtLeastOneBufferItemIsNonZero<T>(T[] Buffer) where T : NUMBERTYPE
{
    Boolean result = false;
    foreach (T Item in Buffer)
    {
       result = …
Run Code Online (Sandbox Code Playgroud)

c# generics primitive-types

5
推荐指数
1
解决办法
738
查看次数

标签 统计

c# ×1

generics ×1

primitive-types ×1