如何在静态泛型方法中为T设置默认类型?

INTODAN

我正在使用自己的自定义堆栈类,正在尝试创建用于创建新堆栈(通用对象)的通用方法。我使用int类型的堆栈进行了大量工作,仅偶尔需要其他类型。我可以将T的默认类型设置为int吗?

方法如下:

public static Stack<T> newStack<T>(int length)
{
    Stack<T> s = new Stack<T>();
    for (int i = 0; i < length; i++)
    {
        Console.WriteLine("print num");
        string input = Console.ReadLine();
        T value = (T)Convert.ChangeType(input, typeof(T));
        s.Push(value);
    }
    return s;
}

我想使用这样的方法:

newStack(5);//defult int type

和任何其他类型

newStack<string>(5)

有人可以帮忙吗?谢谢。

伊万·卡尔

您不能为T指定默认类型,但是您可以简单地重载该newStack方法以获得所需的行为。重载的方法将自动创建一个类型为的新堆栈int

您的代码如下所示:

public static Stack<T> newStack<T>(int length)
{
    Stack<T> s = new Stack<T>();
    for (int i = 0; i < length; i++)
    {
        Console.WriteLine("print num");
        string input = Console.ReadLine();
        T value = (T)Convert.ChangeType(input, typeof(T));
        s.Push(value);
    }
    return s;
}

public static Stack<int> newStack(int length)
{
    // Call our original new stack method but pass
    // integer as the type T
    return newStack<int>(length);
}

现在,如果您只想创建一个整数类型的新堆栈,则可以调用第二种方法:

newStack(5);

否则,您可以使用以下方法创建其他类型的堆栈:

newStack<string>(5);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有为泛型类中的静态方法设置类型

来自分类Dev

如何在Scala中为泛型类型提供默认类型类?

来自分类Dev

如何在非泛型静态类的多个方法中使用相同的泛型类型

来自分类Dev

如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

来自分类Dev

如何在泛型方法中引用类型参数的值

来自分类Dev

如何在泛型方法中获取泛型类型的类实例

来自分类Dev

如何在C#中收集具有泛型类型的静态类的所有“实例”?

来自分类Dev

如何根据 C# 中的 T 类型将泛型类型返回为精确类型

来自分类Dev

如何在Typescript中声明泛型承诺,以便当泛型类型为“ <void>”时,其方法之一不带参数?

来自分类Dev

如何在Nim中使用默认泛型类型?

来自分类Dev

在scala中调用属于泛型类型的“静态”方法

来自分类Dev

如何在循环中设置Type类型的泛型变量?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

从泛型类型调用静态方法

来自分类Dev

从泛型类型调用静态方法

来自分类Dev

如何在Java中为复杂的泛型类型创建别名?

来自分类Dev

如何在C#中使用泛型将类型静态绑定在一起(如TypeToType <T>)?

来自分类Dev

Scala中方法的默认泛型类型

来自分类Dev

对于任何泛型类型参数 T,如何将 Fn(T) + 'static 寄存器设置为 'static?

来自分类Dev

Typescript中的默认泛型类型派生

来自分类Dev

如何在派生类型中使用泛型方法

来自分类Dev

如何在方法参数中使用泛型类型投影?

来自分类Dev

如何在派生类型中使用泛型方法

来自分类Dev

如何在泛型类型方法内引发异常?

来自分类Dev

如何在扩展方法中使用泛型类型成员?

来自分类Dev

如何在C#中对动态类型调用泛型方法

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

Related 相关文章

  1. 1

    没有为泛型类中的静态方法设置类型

  2. 2

    如何在Scala中为泛型类型提供默认类型类?

  3. 3

    如何在非泛型静态类的多个方法中使用相同的泛型类型

  4. 4

    如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

  5. 5

    如何在泛型方法中引用类型参数的值

  6. 6

    如何在泛型方法中获取泛型类型的类实例

  7. 7

    如何在C#中收集具有泛型类型的静态类的所有“实例”?

  8. 8

    如何根据 C# 中的 T 类型将泛型类型返回为精确类型

  9. 9

    如何在Typescript中声明泛型承诺,以便当泛型类型为“ <void>”时,其方法之一不带参数?

  10. 10

    如何在Nim中使用默认泛型类型?

  11. 11

    在scala中调用属于泛型类型的“静态”方法

  12. 12

    如何在循环中设置Type类型的泛型变量?

  13. 13

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  14. 14

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  15. 15

    从泛型类型调用静态方法

  16. 16

    从泛型类型调用静态方法

  17. 17

    如何在Java中为复杂的泛型类型创建别名?

  18. 18

    如何在C#中使用泛型将类型静态绑定在一起(如TypeToType <T>)?

  19. 19

    Scala中方法的默认泛型类型

  20. 20

    对于任何泛型类型参数 T,如何将 Fn(T) + 'static 寄存器设置为 'static?

  21. 21

    Typescript中的默认泛型类型派生

  22. 22

    如何在派生类型中使用泛型方法

  23. 23

    如何在方法参数中使用泛型类型投影?

  24. 24

    如何在派生类型中使用泛型方法

  25. 25

    如何在泛型类型方法内引发异常?

  26. 26

    如何在扩展方法中使用泛型类型成员?

  27. 27

    如何在C#中对动态类型调用泛型方法

  28. 28

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  29. 29

    如何在扩展方法中获取“ this”参数的泛型类型参数?

热门标签

归档