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("对");
                } 
            }
        }
 }

结果如下
在这里插入图片描述

在属性中,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();
}

结果如下
结果
不过,在变量为空时,将会一个图下报错,其实就是一个输入为空的报错异常
此时,我们可以使用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{}语句,就可以获取到输入变量的为空异常,结果如下
结果
这时,输入为空的情况也能得到处理。即使使用字段也是同样的道理。

例子

限制值就是几种情况,范围,长度,等等情况,以下就解释两种情况。
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();
}

结果

长度

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();
}

结果
看到这里,我们发现解决问题的方法都大同小异,都差不多。
只要会使用字段和标签,就可以了。
欢迎大家去作者本人的B站的频道,观看相同的内容,拜托了,增加浏览量一下
https://www.bilibili.com/read/cv15787937

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值