gpt4 book ai didi

c# - 通用类接受原始类型和字符串

转载 作者:太空狗 更新时间:2023-10-29 22:19:26 25 4
gpt4 key购买 nike

我如何创建一个仅接受 Integer、Long 和 String 类型的泛型。

我知道我们可以限制单个类的类型或通过使用以下代码实现接口(interface)

public class MyGenericClass<T> where T:Integer{ }

或者处理 int,long 但不是字符串

public class MyGenericClass<T> where T:struct 

是否可以创建一个只接受 Integer、Long 和 String 类型的泛型?

最佳答案

您可能在类声明中没有约束,但在静态构造函数中进行一些类型检查:

public class MyGenericClass<T>
{
static MyGenericClass() // called once for each type of T
{
if(typeof(T) != typeof(string) &&
typeof(T) != typeof(int) &&
typeof(T) != typeof(long))
throw new Exception("Invalid Type Specified");
} // eo ctor
} // eo class MyGenericClass<T>

编辑:

正如 Matthew Watson 在上面指出的那样,真正的答案是“你不能也不应该”。如果您的面试官认为不正确,那么您可能无论如何都不想在那里工作;)

关于c# - 通用类接受原始类型和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541993/

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