我希望有一个Type
“用于”某个数字,另一个Type
用于另一个数字。但是我不希望必须为每个数字手动定义一个Type
,如Level1024
和Level1000
。我希望为每个数字示例化Level
类的示例很简单。就像我们对泛型所做的那样,我们可以创建一个Level<string>
和一个Level<int>
,而不需要为每个Level
定义一个单独的Level
。
我们的想法是这样的:
Level<1024> topPlayerOf1K;
Level<1000> Abe = new Level<1000>();
topPlayerOf1K = Abe; //This should show a squiggly line in Visual Studio.
我怎样才能做到这一点或类似的东西?
1条答案
按热度按时间des4xlb01#
数字常值在C#中不像在TypeScript中那样被视为型别,而且不能像C++中的样板参数那样当做泛型参数使用。
至少,你必须为你想使用的每个数字文字创建类型。方法如下:
如果你有很多这样的代码的话,最好自动生成这些代码,这不是一个很好的解决方案,但是如果你不了解你的程序,也不知道你要防止什么样的错误,抽象地说,这是一种你可以在类型系统中编码数字文字的方法。