gpt4 book ai didi

C# 反射类型参数数量可变的类型

转载 作者:行者123 更新时间:2023-12-02 15:38:48 25 4
gpt4 key购买 nike

是否可以在运行时获取具有可变数量类型参数的泛型类的类型?

也就是说,根据一个数字,我们能得到这个元素数量的元组的类型吗?

Type type = Type.GetType("System.Tuple<,>");

最佳答案

写法是

Type generic = Type.GetType("System.Tuple`2");

泛型类型的格式很简单:

"Namespace.ClassName`NumberOfArguments"

` 是字符 96。(ALT+96)。

但是我会避免使用字符串,它比使用 typeof 慢,或者更好,使用数组查找。我会提供一个很好的静态函数,它的速度要快数千倍......

private static readonly Type[] generictupletypes = new Type[]
{
typeof(Tuple<>),
typeof(Tuple<,>),
typeof(Tuple<,,>),
typeof(Tuple<,,,>),
typeof(Tuple<,,,,>),
typeof(Tuple<,,,,,>),
typeof(Tuple<,,,,,,>),
typeof(Tuple<,,,,,,,>)
};

public static Type GetGenericTupleType(int argumentsCount)
{
return generictupletypes[argumentsCount];
}

关于C# 反射类型参数数量可变的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018977/

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