set,get方法(属性,索引器)
2024-08-27 17:45:43
很多时候我们不可以把一些字段暴露出来允许别人调用和修改,为了隐藏这些字段又便于加限制的使用,在面向对象编程中一般采用写get set函数的办法,比如:
//字段_age, "_"表示private
private int _age;
//获取字段值的方法,需要返回这个int类型字段
public int GetAge()
{
return this._age;
}
//设置字段值的方法,不需要返回值,定义一个int类型的value
public void SetAge(int value)
{
if (value >= 0 && value <= 120)//可以加条件来限制字段的范围
{
this._age = value;
}
else
{
throw new Exception ("Age value has error.");
}
}
学生的年龄限制在0-120,则可以避免20岁输入成200岁这种错误。
C#语言单独引入了属性这种概念,用来对字段加以限制,属性是一种语法糖。
//字段_age, "_"表示private
private int _age;
public int Age
{
//获取字段值的方法
get
{
return this._age;
}
//设置字段值的方法,不需要返回值
set
{
if (value >= 0 && value <= 120)//规定好value是上下文关键字(蓝色)
{
this._age = value;
}
else
{
throw new Exception("Age value has error.");
}
}
}
只读方法:(不允许往里写,只允许读取的方法。另外只写方法是没有意义的,因此不举例只写方法)
//字段_age, "_"表示private
private int _age;
public int Age
{
//获取字段值的方法
get
{
return this._age;
}
}
属性快捷键
propfull 然后按两下tab会出现
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
最简单:(这种属性没有任何保护,与一个公有的字段完全一样,很容易被改变值,带有这种属性的类一般是传输数据用的)
public int Age{get;set;}
索引器:Indexer
基本语法:
修饰符 类型名 this [参数列表] //this表示他是个索引器
{
get{
}
set{
}
}
举个例子:
public string s;
//可容纳100个整数的整数集
private string[] arr = new string[10];
//声明索引器
public string this[int index]//这里定义一个index
{
get
{ //检查索引范围
if (index < 0 || index >= 10)
{
return null;
}
else
{
return arr[index];
}
}
set
{
if (!(index < 0 || index >= 100))
{
arr[index] = value;
}
}
}
最新文章
- SQL Server群集知识介绍
- Web APi之控制器创建过程及原理解析(八)
- [MySQL Reference Manual] 10 全球化
- Rect 和 Bounds
- linux下VMware安装出现的问题解决
- 什么是Activity
- 关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法
- HTML5自学笔记[ 3 ]表单验证反馈
- 关于UIMenuController的使用 弹出菜单 UIMenuItem
- HDU5781--ATM Mechine(概率dp)
- DataGridView 绑定数据后修改列类型
- NSThread 、NSRunLoop 和 Dispatch Queue
- Handsontable通用方法
- html5的在ie6,7,8兼容
- Mysql存在则更新,没有则新增
- python之控制流
- Chrome opacity非1时border-radius圆角边框剪裁问题
- txt文本处理---行未添加逗号
- sql语句循环截取字符串
- js核心对象
热门文章
- 【虚拟机】:";该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。";
- 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
- ECUST_Algorithm_2019_2
- JavaSE---多线程---概述
- leetcode-165周赛-1278-分割回文串③
- shell脚本编程运算
- POJ 2443 Set Operation (按位压缩)
- Linux运维学习网站收藏
- Network基础(四):MAC地址表及邻居信息查看、配置接口速率及双工模式、配置交换机管理IP
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本