C#基础--属性 字段
访问修饰符:
private: 私有成员,在类的内部才可以访问
protected: 受保护的成员,该类内部和继承类的内部可以访问
public: 公共成员, 完全公开, 没有访问限制
internal: 当前程序集内可以访问
1.0字段的定义:
访问修饰符 数据类型 字段名称; 如 public string name;
2.0属性的定义:
访问修饰符 数据类型 属性名称{get; set;}
public string Name { get; set; } //该属性可读可写
public string Email { get; } //该属性是只读属性 属性中只有get块而没有set块, 那么只能取这个属性的值 而不能为这个属性赋值.
public bool Gender { set; } //该属性表示是 只写属性 属性中只有set块而没有get块. 那么只能为这个属性赋值. 而不能取这个属性的值.
3.0属性和字段有啥关系呢?
/* 1. 为什么要保护字段?
* 因为我们希望在为字段赋值或者取值的时候做1个逻辑验证.
*
* 2. 微软提供了一种更为简洁的语法来保护字段---属性.
* 属性的作用: 保护字段.
*
* 3. 如何使用属性来保护字段呢?
* a. 被保护的字段一定要私有化.
* b. 为这个字段写1个属性
* 语法:
* 访问修饰符 属性的类型 属性的名称
* {
* get
* {
* }
* set
* {
* }
* }
*
* 4. 外部如何操作属性.
* a. 图标为扳手的就代表属性.
* b. 外部操作的时候将属性当做字段来操作,使用赋值符号直接赋值或者直接写上属性的名称取值.
*
* 5. 属性到底是如何来保护字段的
* a. 为属性赋值的时候,会调用属性中的set代码块. 在set中可以通过关键字value拿到用户为属性赋的值
* 一般情况下,我们在set代码块中 取出用户为属性赋的值(value) 做逻辑验证.
* 如果符合逻辑 就将用户赋的值赋值给被保护的字段.
* 否则做默认处理.
*
* b. 当我们取属性的值的时候,就会执行属性中的get代码块的内容.
* 最终取到的值,是在get块中return回去的值.
* 一般情况下,我们在get代码块中 将属性保护的字段的值返回.
*/
4.0 属性的本质
属性的本质是1个get方法和1个set方法.
只不过微软提供了1种更为简洁的方式来帮助写这两个方法
我们之所以可以再set里面通过value关键字取到用户赋的值 是因为set本质是1个方法 这个方法的参数叫做value
暂未提供反编译的截图
C#基础--属性 字段的更多相关文章
- geotrellis使用(十一)实现空间数据库栅格化以及根据属性字段进行赋值
Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 安装空间数据库 空间数据库栅格化 根据属性字段进行赋 ...
- ArcMap10.1修改要素属性字段
ArcMap10.1修改要素属性字段 问题描述:在ArcMap10.1中编辑要素属性表时,遇到输入字段值的长度超过字段最大长度时,ArcMap会抛出“基础DBMS错误[ORA-12899:value ...
- [ArcGIS API for JavaScript 4.8] Sample Code-Popups-1-popupTemplate的概念和popup中属性字段值的多种表现形式
[官方文档:https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/index.html] 一. ...
- Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)
在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: ...
- Silverlight实例教程 - Validation数据验证基础属性和事件(转载)
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...
- [源码]Literacy 快速反射读写对象属性,字段
Literacy 说明 Literacy使用IL指令生成方法委托,性能方面,在调用次数达到一定量的时候比反射高很多 当然,用IL指令生成一个方法也是有时间消耗的,所以在只使用一次或少数几次的情况,不但 ...
- 玩转动态编译 - 高级篇:二,IL设置静态属性,字段和类型转换
静态属性赋值 先来看 Reflector反射出的IL源码(感谢Moen的提示),这次用 Release模式编译,去掉那些无用的辅助指令 public void AAA(string s) { MyCl ...
- BizTalk开发系列(五) 属性字段
在根据消息内容进行路由的时候经常使用的是可分辨字段和属性字段.属性字段可以在各个 BizTalk Server 组件(包括管道和业务流程)中进行访问.属性字段还可用于消息路由.如果需要在上下文(而不是 ...
- Unity UGUI——Rect Transform组件(基础属性)
基础属性:Width.Height.Pivot图示 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fo ...
随机推荐
- 第一百九十四天 how can I坚持
该挺妈妈话的,不该买可乐,该熬点粥喝,肚子疼,救我. 好像每天都一样,每天都在重复.. 哎.. 对了,买了点花种子,铜钱草,牡丹.玫瑰.还买了棵小多肉. 还有,老妈把咸菜给邮过来了,有点期待啊. 连续 ...
- C++ 中vector的基本用法
//在网上看了好久,自己总结了一下下,第一篇博客,呼呼,学到不少 基本概念 vector容器是一个模板类,可以存放任何类型的对象).vector对象可以在运行时高效地添加元素,并且vector中元素是 ...
- [iOS微博项目 - 2.2] - 在app中获取授权
github: https://github.com/hellovoidworld/HVWWeibo A.发送授权请求 1.使用UIWebView加载请求页面 自定义一个继承UIViewContr ...
- LoadRunner执行自动化以及报告自动化的方法
There are three major articles KB articles on Automating LR: 1. Command line arguments for the LoadR ...
- True or False
任何对象都可以被测试真值.用于if或while条件中或作为下面的布尔操作的操作数.以下值被视为假: None False 任何数值类型的零,例如,0.0.0.0j . 任何空序列,例如,". ...
- AJAX小练习,防止以后忘记
<div id="content"> <input id="btnShow" type="button" value=&q ...
- 如何防止ASP.NET网站遭受CSRF的攻击
转载地址: http://www.cnblogs.com/shanyou/p/5038794.html?hmsr=toutiao.io&utm_medium=toutiao.io&ut ...
- GWT工程架构分析与理解
上一篇文章中介绍了GWT技术的一些理论性的东西,涉及到GWT得一些技术原理及实现.接下来笔者将通过创建一个GWT工程去理解分析GWT工程架构. GWT工程架构解析 笔者使用的是Eclipse插 ...
- Web服务器与Web系统发布
在讨论Web系统发布之前,我们先来辨析两个概念:服务器.Web服务器. 通常,我们说的服务器,是一台提供服务的计算机,是硬件概念.这台主机有其IP地址,有服务端口,我们要访问时,就是通过IP地址唯一地 ...
- css样式被覆盖解决方案
刚才写zenktodo的时候,通过动态添加class的方式修改一个div的样式,总是不起作用. #navigator { height: 100%; width: 200; position: abs ...