语法篇7之clr属性
来源:互联网 发布:winpe启动盘制作软件 编辑:程序博客网 时间:2024/05/23 05:10
定义:属性是面向对象思想里所说的封装在类里面的数据字段,Get,Set方法。
I.普通用法
例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例
private string title;
public string Title
{
get{return title;} //获取这个值
set{title = value;} //设置这个值
}
例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例例
这种形式叫做封装。
在类外部只能调用Title而不能访问title 但是可以通过Title来访问title
这里可以给set里面加入条件
II.晋升用法
在这里get { return age; } 相当于 int get(){return age;}
其实get就是个返回函数 用于返回需要数据
在这里 set 那个也就相当于
void set(int value)
{
if (value < 100 && value > 0)
{
age = value;
}
else
{
age = 18;
}
}
get 和set就是一个为了方便返回和设定的一个简写的函数,其实GET和SET是为了保护好类内的数据变量,可以“有限制地”对数据变量进行赋值和获取,如果不用GET 和SET 也可以根据类名.变量改变类中的数据,不过就把类里面的结构暴露出来了,这样就有可能被别人用内存修改器,改变类中的数据 安全性不够高,如果用GET、SET这样的属性设定工具 就可以有效安全的管理类内的变量
III.扩展用法
get set是用来扩展域的,也就是C里的变量,只是用起来更加灵活而己。看以下代码:
using System;
public class cls
{
private int book;//定义一个域(也可以叫变量,只是面向对像里都这么叫,使用起来也更加方便)
public int Book
{
get
{
Console.WriteLine("dsf");
return book;
}
set
{
Console.WriteLine("aaa");
book = value;
}
}
public static void Main()
{
cls obj = new cls();
obj.Book = 120; //注意这一句
Console.WriteLine(obj.Book);
}
}
运行结果为:
aaa
dsf
120
也就是先把120赋值给value(相当一个存储空间),然后再用get{}返回给Book,实际上也就是一次改变变量值的过程。
那你也许会问为什么要这么复杂呢?因为这是用了嵌套,所以可以更加方便的写入其它语句,在以后你就应该学到了。
如果没有:
obj.Book = 120;
请想一想会是什么结果呢?
只是一个取值过程:get{}而没有执行set{}
结果为:
dsf
0
IV.自动属性
C#3.0对这种常见的写法提供了“自动属性”这一特性:
public class Person
{
public string Name { get; set; }
}
V.集合属性
class MCollection
{
public MessageType this[string type] {
get {
return MessageTypes.Find(n => n.Type.Equals(type, StringComparison.CurrentCultureIgnoreCase));
}
}
}
MCollection m = new MCollection();
MessageType type = m["type1"];
- 语法篇7之clr属性
- WPF之CLR属性、依赖属性、附加属性
- CLR学习笔记--属性
- 测试语法之属性介绍
- CLR之程序集
- iOSDay12之OC属性和点语法
- WPF中的属性(一)- CLR属性和依赖属性
- WPF中的属性- CLR属性和依赖属性
- mfc 加 clr 属性web引用
- C++/CLR ref class 属性定义
- 《CLR via C#》读书笔记---10属性
- 属性——CLR via C# 读书笔记
- C#之CLR/CTS, CLS
- 再谈CLR:构造之谜
- CLR via C# 之旅
- CLR
- CLR
- CLR
- 在执行期间制定文件位置并读取。利用BufferedReader与FileReader
- 求学的最后阶段,来一场说走就走的旅行,那该是一件多惬意的事
- 【Cocos2d-x(2)】魔塔MagicTown第二章之人物篇
- matlab2014a中help与参考页翻译 Tutorials – workspace variables
- java集合15--set架构
- 语法篇7之clr属性
- C++第五次实验-------多继承
- 语法篇8之特性
- Cent OS JDK8安装
- matlab2014a中help与参考页翻译 Character Strings
- Android Button
- JDBC查询数据库中的数据
- 进程与线程之间的区别及联系
- 手机移动端WEB资源整合