如何在声明后声明变量类型,或如何将传递的类型用作类型

时间:2016-11-11 07:29:44

标签: c# types

我有一个程序要求用户输入一个整数(和他们一样大)。然后它读取它并用它进行大量计算。我想要做的是将输入转换为" 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。

这是我考虑过的(以及为什么他们还没有工作)

  1. 声明var类型numberToWorkWith(由于我必须在声明时初始化它,因此无法工作)
  2. 在上面声明dynamic numberToWorkWith;,然后在循环中添加类似numberToWorkWith = (byte)number;的内容(但我需要锁定该类型。程序稍后会再次更改类型并导致错误)。
  3. 创建如下方法

    private static void WorkWithNumber(Type passedType)
    {
        passedType numberToWorkWith = (passedType)number;
    }
    

    这给了我一个错误,因为我不能将passType作为一种类型使用(虽然我不确定为什么)

  4. 我在numberToWork上执行了一长串代码,无论它是什么类型,所以我非常不会将代码复制5次以将其放入if / else中的每个if / else声明。我觉得解决方案3(创建一个方法并传递一个类型)可能有潜力......

    思考?建议?

    提前谢谢!!

0 个答案:

没有答案