C#自定义属性(跟成员变量的区别)
属性声明
从功能上等价于
private int m_age;
public int age {
get { return m_age; }
set { m_age = value; }
}
先偷懒, 写成
public int age { get; set; }
项目写到某个阶段了, 要求 age 数值必须有效了。 不能年龄小于 0 的.
那么切换成
private int m_age;
public int age {
get { return m_age; }
set {
if( value < 0 ) {
// 抛个异常什么的.........
}
m_age = value;
}
}
或者又到某个阶段了, 说 age > 30 不结婚违法什么的。
那么切换成
private int m_age;
public int age {
get { return m_age; }
set {
if( value < 0 ) {
// 抛个异常什么的.........
}
m_age = value;
if( value > 30 && marryed == false) {
// 触发某事件......
}
}
}
或者又到某个阶段了, 说 age 不能外部设置, 外部只能设置 生日。 age 是只读的, 通过生日计算的。
那么切换成
public int age {
get { return 今年 - 生日的年; }
}
这样修改以后, 原先所有的 直接 设置 age 的代码, 将编译不通过。 可以简单去注释掉即可。
C#自定义属性(跟成员变量的区别)的更多相关文章
- Java中Static关键字详解以及静态变量和成员变量的区别
一.static关键字的特点 (1)修饰成员变量.成员方法(2)随着类的加载而加载(3)优先于对象存在(4)被所有对象共享(5)可以通过类名调用 它本身也可以通过对象名调用 例如:main()方法由j ...
- 静态变量和成员变量的区别、final修饰特点、创建对象的内存图、静态内存图
静态变量和成员变量的区别* 静态变量也叫类变量 成员变量也叫对象变量* A:所属不同 * 静态变量属于类,所以也称为为类变量 * 成员变量属于对象,所以也称为实例变量(对象变量)* B:内存中位置不 ...
- iOS中属性与成员变量的区别
一.类Class中的属性property 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfa ...
- IOS 杂笔-4(属性与成员变量的区别)
属性可以用点语法,比如self.xxx,在外部调用也同样可以someClass.xxx. 属性实际上是对一组set和get方法的简单封装(oc的get方法没有get前缀),同样会自动生成一个私有的成员 ...
- 《java中局部变量和成员变量的区别》
class Car { String color; int number; void run() { System.out.println(color+"::"+number); ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别
黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...
- java的局部变量和成员变量以及区别
一.局部变量 存在某个方法中的变量就叫局部变量,局部变量一旦声明就必须赋值 否则不能使用 代码如下: class Person { String name; char sex; int age; pu ...
- 【转】iOS中属性与成员变量的区别
[转载自并整理 http://blog.csdn.net/itianyi/article/details/8618128] 一.类Class中的属性property 在ios第一版中,我们为输出口同时 ...
- 类变量方法,局部变量和成员变量的区别(this关键字的使用)
变量名首写字母使用小写,如果由多个单词组成,从第2个单词开始的其他单词的首写字母使用大写. 如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this class P ...
随机推荐
- js : json和 cookie 的简单操作
使用 cookie,可以记录用户的最近的浏览历史 <!DOCTYPE HTML> <html lang="zh-cn"> <head> < ...
- Node聊天程序实例05:index.html和style.css
作者:vousiu 出处:http://www.cnblogs.com/vousiu 本实例参考自Mike Cantelon等人的<Node.js in Action>一书. index. ...
- c#_1:后台post请求
1:aspx内容 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Push.as ...
- 为什么不要使用Response.Close()
不要使用Response.Close() 不要使用Response.Close() 不要使用Response.Close() 1 因为:Close()方法会调用HttpWo ...
- 01 ~ 03 headfirst php & mysql
Question : 难道不是所有web页面原先都放在服务器上吗? 甚至存储在.html文件中的HTML页面? Answer : 没错, 网站的所有文件都存储在服务器上, html, css, php ...
- springMVC+mybatis+spring整合案例
1.web.xml a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml <listener> <listener-class ...
- ROS学习笔记(二)——ubantu 14.04 安装
0.采用双系统安装(U盘安装) 1.安装文件在ubantu官网下载: ubantu官网 :https://www.ubuntu.com/ ubuntu的server版和desktop版有什么区? (来 ...
- jQuery 表格删除,添加行
var colsNum = 4; 1,$(document),ready(function () { $.("#id1").parent().after('<tr class ...
- java对国际化的支持
国际化的英文为Internationalization,这个也太长了,所以它又称为I18n(英文单词 internationalization的首末字符i和n,18为中间的字符数). 除了i18n还有 ...
- 【转】常用聚类算法(一) DBSCAN算法
原文链接:http://www.cnblogs.com/chaosimple/p/3164775.html#undefined 1.DBSCAN简介 DBSCAN(Density-Based Spat ...