我有一个程序要求用户输入一个整数(和他们一样大)。然后它读取它并用它进行大量计算。我想要做的是将输入转换为" best"在使用之前键入(byte,short,int,long或BigInteger)。
我想要做的就是这个
if(number < 256)
{
byte numberToWorkWith = (byte)number;
}
else if(number < 65536)
{
ushort numberToWorkWith = (ushort)number
}
else if ...
然后我希望能够使用numberToWorkWith完成所有计算/等。问题是,在我离开if / else if / else语句之后,我无法访问numberToWorkWith。
这是我考虑过的(以及为什么他们还没有工作)
dynamic numberToWorkWith;
,然后在循环中添加类似numberToWorkWith = (byte)number;
的内容(但我需要锁定该类型。程序稍后会再次更改类型并导致错误)。创建如下方法
private static void WorkWithNumber(Type passedType)
{
passedType numberToWorkWith = (passedType)number;
}
这给了我一个错误,因为我不能将passType作为一种类型使用(虽然我不确定为什么)
我在numberToWork上执行了一长串代码,无论它是什么类型,所以我非常不会将代码复制5次以将其放入if / else中的每个if / else声明。我觉得解决方案3(创建一个方法并传递一个类型)可能有潜力......
思考?建议?
提前谢谢!!