为了防止用户输入或传入非法值,我们往往需要对类中的属性进行限定。比如在登录系统中,限定密码为数字则必须输入数字,对于年龄的限定必须为0~120,对于性别的设定必须为男或女,现在介绍三种限定方法

属性是用于保护和限定字段的,属性的限定一般是set和get方法,其中set方法是在给属性赋值的时候执行
的,而get则是在对属性进行打印调用的时候使用的
首先我们先创建一个person类,和类下的字段和属性

 public class Person//非静态类{string _name;//定义字段public  string Name//定义属性{get { return _name; }//打印值的时候使用get方法set {_name = value; }//给对象的属性赋值时使用set方法}

以上是一个类中的字段和属性的创建,然后我们对name进行一个限定

1.对类下的属性中的get方法进行限定

public  string Name{get { return _name; }set {if (value != "admin"){value = "admin";//在此限定了Name无论输入什么都是admin}_name = value; }//给对象的属性赋值时使用set方法}

需要我们对value进行一个条件判断

2.对类下的属性中的set方法进行限定

     int _age;public int Age{get {if (_age > 120 || _age < 0){return _age = 0;}return _age; }set { _age = value; }}

需要我们在get中对字段进行一个判断

3.在构造函数中进行限定

构造函数

public Person(string name,int age,char gender){this.Name = name;this.Age = age;if(gender!='男'&&gender!='女'){gender='男';}this.Gender = gender; }

此时当我们调用函数的时候,输入的值若不是男或者女,则会赋值为男
在类文件中新建一个方法

public void out1()
{Console.WriteLine("{0},{1},{2}",this.Name,this.Age,this.Gender);
}

然后我们在main函数中新建一个Person对象,根据我们的构造函数传入参数并调用out1方法

Person p = new Person("user",-1,'中');
p.out1();

C#在类的属性对非法值的进行限定的三种方法相关推荐

  1. ajax后台返回数据中文乱码_解决Jmeter返回值显示中文乱码 的三种方法及设置随机动态参数(非原创侵删)...

    一.Jmeter返回值显示中文乱码解决方法 第一种解决方法: 1. 点击线程组--添加--后置处理器--BeanShell后置处理程序 2.点击BeanShell后置处理程序,编写:prev.setD ...

  2. python + opencv + 二值化处理图片数据集(三种方法)

    二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...

  3. java字符串取值_java 字符串截取的三种方法

    1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = " ...

  4. python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...

    一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...

  5. (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...

    (一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight). 再写两个子类: 红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color ...

  6. php中获取对象的属性值,PHP获取对象属性的三种方法

    今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars() ...

  7. Javascript定义类(class)的三种方法

    将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言.如果你忘了填写用户名,它就跳出一个警告. 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途.程序员用它完成越来越 ...

  8. react如何获取option的下标和值_select选中获取索引三种写法

    $('#someId').prop('selectedIndex'); $('option:selected', '#someId').index(); $('#someId option').ind ...

  9. ArcEngine获取字段唯一值的三种方法

    在做GIS数据处理时,我们经常需要获取某个字段的唯一值.我在这里总结了三种方法,下面分别进行说明. 方法一:读取表记录 这种方法就是逐条读取记录,然后选用合适的数据结构进行查重,它的好处就在于:不必去 ...

最新文章

  1. 报告:AI技术正有效缩小亚洲医疗发展的差距
  2. inode与block详解
  3. python输入exit怎么退出了_Python 中的 exit() 和 sys.exit()
  4. 《为什么在多核处理器下需要内存屏障(MenmoryBarrier)?》
  5. C#中的委托和事件 (7)---总结
  6. 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
  7. offsetwidth/offsetheight的区别
  8. 开发技巧(3-1)Eclipse查找关键字
  9. 神雕外挂 神雕ol外挂 http://www.shaguayou.com
  10. 沁透著一片悠然禪意 《掬水》
  11. raid卷的作用_raid是什么?为什么要用raid?有好什么好处?
  12. 免费论文下载:林巧稚的论文期刊
  13. 入门 - 01- Java帝国的诞生
  14. 终于有人把DevOps讲明白了
  15. 协方差与皮尔森相关性系数
  16. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(三):scapy——网络的掌控者
  17. Java 将网络图片URL 转为file文件
  18. Android获取屏幕分辨率及DisplayMetrics简介
  19. STM32利用flash读取音频数据读取与DAC播放
  20. STM8L051 GPIO PC0 PC1无法上拉的问题

热门文章

  1. oppoReno4se和华为麦芒9 哪个好
  2. 腾云忆想科技和腾讯关系_“腾云+乡伴”打造云南半山智慧生态酒店
  3. 1M字节内存,为什么地址编码需要20位二进制位
  4. springboot+thymeleaf 东软医疗项目 开发错误记录
  5. 一流的技术员工究竟有多值钱?让扎克伯格告诉你
  6. 从微视“脱单”看短视频的社交价值
  7. 百度网盘AI大赛:文档图像摩尔纹消除(赛题一) Baseline
  8. 全国计算机大连没有考点,2018大连高考考点考场安排及设置
  9. 系统设计面试题 之 如何设计Instagram
  10. 转:在线检测网页错误工具