如何将<=或> =添加到int.Parse

0 c# int

我正在做一些我希望用户能够输入介于0-9之间的数字并且为其吐出单词的内容,例如.1合1.我对第一部分很好,但是,我不知道如何获取它以便它告诉用户它是否输入了无效的数字或字母.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _0_9_output
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Write a number between 0-9: ");
            int number = int.Parse(Console.ReadLine());
            if (number == 0)
            {
                Console.WriteLine("Zero");
            }
            else if (number == 1)
            {
                Console.WriteLine("One");
            }
            else if (number == 2)
            {
                Console.WriteLine("Two");
            }
            else if (number == 3)
            {
                Console.WriteLine("Three");
            }
            else if (number == 4)
            {
                Console.WriteLine("Four");
            }
            else if (number == 5)
            {
                Console.WriteLine("Five");
            }
            else if (number == 6)
            {
                Console.WriteLine("Six");
            }
            else if (number == 7)
            {
                Console.WriteLine("Seven");
            }
            else if (number == 8)
            {
                Console.WriteLine("Eight");
            }
            else if (number == 9)
            {
                Console.WriteLine("Nine");
            }
            else
            {
                (number >= 10);
            }

            {
                Console.Write("That was an invalid statement.");
            }


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的第一段代码之一,所以请慷慨提供提示/建议.我是一名年轻的程序员,我才开始在学校里学习这一点.

Dmi*_*nko 10

我建议两个主要的事情:

  1. s_Numbers在下面的代码中提取模型(即数字的名称)数组
  2. 使用int.TryParse而不是Parse(bool在上下文中检查比捕获异常更容易)

像这样的东西:

 class Program {
   // Model: numbers' names
   private static string[] s_Numbers = new string[] {
     "Zero", "One", "Two", "Three", "Four",
     "Five", "Six", "Seven", "Eight", "Nine" 
   };

   static void Main(string[] args) {
     Console.Write("Write a number between 0-9: ");

     // cyclomatic complexity reduction (10 ifs dropped), 
     // readability increasing
     //
     // out var number - C# 7.0 construction; if early C# version used:
     //  
     // int number;
     // if (int.TryParse(Console.ReadLine(), out number))  ...
     //
     if (int.TryParse(Console.ReadLine(), out var number)) 
       if (number >= 0 && number <= 9)
         Console.Write(s_Numbers[number]);     // number in [0..9] range 
       else
         Console.Write("Out of [0..9] range"); // number out of range 
     else 
       Console.WriteLine("That was an invalid statement."); // not an integer
   }
 }
Run Code Online (Sandbox Code Playgroud)

  • 如果OP没有VS 2017,那个`out var number`可能会让人感到困惑 (2认同)