比较类型时无法访问代码

本文关键字:访问 代码 类型 比较 | 更新日期: 2023-09-27 18:32:43

问题:我的else语句无法访问,我做错了什么?

在编程方面非常新,我正在尝试比较类型,例如,当我要求整数时人们无法输入字符串。

我的代码可能很糟糕,如果我能得到一个标题该怎么做以及为什么 if 参数跳过其他部分,我会很高兴!

谢谢!

class Program
{
    static void Main(string[] args)
    {            
        int integer = 0;
        start:
        Console.WriteLine("How old are you?: ");
        int svar = int.Parse(Console.ReadLine());
        Utility.CompareTypes(svar, integer);
            if (true)
        {
            Console.WriteLine("Thanks");
        }
            else
            {
                Console.WriteLine("You have to enter a number!");
                goto start;
            }
    }
}
class Utility
{
    public static bool CompareTypes<T01, T02>(T01 type01, T02 type02)
    {
        return typeof(T01).Equals (typeof(T02));
    }
}

:c

比较类型时无法访问代码

这不是代码的问题,而是逻辑问题......

if (true) // <--- this will ALWAYS be true
{
    Console.WriteLine("Thanks");
}
else // <--- therefore this will NEVER happen
{
    Console.WriteLine("You have to enter a number!");
    goto start;
}

由于您的else块在任何逻辑情况下都不可能执行,因此整个代码块可以简化为:

Console.WriteLine("Thanks");

为了使else块执行,需要false if语句中选中的条件。 您当前没有检查任何实际情况,只是检查硬编码的true值。

也许您打算使用上一行代码的结果? 像这样:

var typesAreSame = Utility.CompareTypes(svar, integer);
if (typesAreSame)
{
    //...