c#限制输入的值

  • 字段和属性
  • 标签
  • 例子
  • 范围
  • 长度



PS:本人学生一名,自学,没有项目经验,可能对程序的理解有误,有问题欢迎提出。


欢迎大家到本作者的B站的频道,去观看更多的内容,

https://www.bilibili.com/read/cv15787937

字段和属性

首先,我们需要知道字段和属性。属性的作用是为了防止输入错误的值。而字段就是存储值的空间。
通俗来讲就是属性保护着字段,字段里面的所有东西都由属性去排查有没有问题,属性起一个保护层的作用,防御所有不正确的数据,将正确的数据给字段。

static void Main (string[] args)
{
    A a1 = new A ();
    a1.Id = Convert.ToInt32(Console.ReadLine());//将id改为非正常值
    Console.WriteLine ("a1.Id:" + a1.Id);//输出非正常值的id
    A a2 = new A ();
    a2.Id = Convert.ToInt32(Console.ReadLine());//将id改为正常值
    Console.WriteLine ("a2.Id:" + a2.Id);//输出正常值的id
    Console.ReadKey ();
}

 public class A
  {
        private int id;//假设输入id的范围是0-9
        public int Id
        {
            get
            {
                return id;//输出
            }
            set
            {
                if (value >= 10)//判断赋值的数值,是否在我们假设的范围之间
                {
                    id = value % 10;//超过10 ,取个位置
                    Console.WriteLine("错");
                }
                else
                {
                    id = value;//没有超过,就直接赋值
                    Console.WriteLine("对");
                } 
            }
        }
 }

结果如下

android 数值输入限制 限定输入值_赋值

在属性中,set{}里写入代码,value是你输入的数据。只要通过对value判断数值即可。

标签

声明一个标签,使用goto语句让程序回到**Console.ReadLine()**重新赋值
简单的来说就是 goto语句,会让程序前往到任意位置,这个位置需要用到标签声明。

static void Main(string[] args)
{
    int a = 0;//输入范围:0-9
    Console.WriteLine("输入a");
  input_a://写一个标签来标记位置
    a = Convert.ToInt32(Console.ReadLine());//输入a
    if (a >= 10)//判断赋值的数值,是否在我们假设的范围之间
    {
       Console.WriteLine("重新赋值a");
       goto input_a;//返回赋值时的代码,进行重新赋值
     }
    Console.WriteLine("a:"+a);//输出a
    Console.ReadKey();
}

结果如下

android 数值输入限制 限定输入值_字段_02


不过,在变量为空时,将会一个图下报错,其实就是一个输入为空的报错

android 数值输入限制 限定输入值_c#_03


此时,我们可以使用try{}

try语句,是可以捕获到所有的异常,执行catch{}里面的语句

static void Main(string[] args)
{
    //int?是允许赋空值
    int? a = null;//输入范围:0-9
    Console.WriteLine("输入a");
  input_a://写一个标签来标记位置
    try
    {
        a = Convert.ToInt32(Console.ReadLine());//输入a
        if (a >= 10)//判断赋值的数值,是否在我们假设的范围之间
        {
             Console.WriteLine("重新赋值a");
             goto input_a;//返回赋值时的代码,进行重新赋值
        }
    }
    catch
    {
        Console.WriteLine("输入为空");
        goto input_a;//返回赋值时的代码,进行重新赋值
    }
    Console.WriteLine("a:"+a);//输出a
    Console.ReadKey();
}

加上try{}语句,就可以获取到输入变量的为空异常,结果如下

android 数值输入限制 限定输入值_c#_04


这时,输入为空的情况也能得到处理。即使使用字段也是同样的道理。

例子

限制值就是几种情况,范围,长度,等等情况,以下就解释两种情况。
PS:作者用习惯try{}的方法,毕竟很好理解,逻辑清晰点。其实两种都可以。

范围

static void Main(string[] args)
{
     //int?是允许赋空值
     int? a = null;//输入范围:10-20
     Console.WriteLine("输入a");
   input_a://写一个标签来标记位置
     try
     {
         a = Convert.ToInt32(Console.ReadLine());//输入a
         if (a < 10||a>20)//判断赋值的数值,是否在我们假设的范围之间
          {
              Console.WriteLine("重新赋值a");
              goto input_a;//返回赋值时的代码,进行重新赋值
          }
     }
     catch
     {
         Console.WriteLine("输入为空");
         goto input_a;//返回赋值时的代码,进行重新赋值
     }
     Console.WriteLine("a:" + a);//输出a
     Console.ReadKey();
}

android 数值输入限制 限定输入值_android 数值输入限制_05

长度

static void Main(string[] args)
{
    //int?是允许赋空值
    string? a = null;
    Console.WriteLine("输入a");
  input_a://写一个标签来标记位置
    try
    {
        a = Console.ReadLine();//输入a
        if (a.Length>=5)//判断赋值的数值,是否在我们假设的范围之间
        {
           Console.WriteLine("重新赋值a");
           goto input_a;//返回赋值时的代码,进行重新赋值
        }
     }
     catch
     {
        Console.WriteLine("输入为空");
        goto input_a;//返回赋值时的代码,进行重新赋值
     }
    Console.WriteLine("a:" + a);//输出a
    Console.ReadKey();
}

android 数值输入限制 限定输入值_学习_06


看到这里,我们发现解决问题的方法都大同小异,都差不多。

只要会使用字段和标签,就可以了。

欢迎大家去作者本人的B站的频道,观看相同的内容,拜托了,增加浏览量一下

https://www.bilibili.com/read/cv15787937