C#基础(202)--类定义,字段与属性,自动属性,方法及常见错误
c#类的定义规范
字段与属性的比较:
字段:
字段主要是为类的内部做数据交换交互使用,字段一般是private
字段可以赋值,也可以取值
当字段需要为外部数据提供数据的时候,请将字段封装为属性,而不是使用公有字段,这是面向对象所提倡的。
属性:
属性一般是向外提供数据,主要用来描述对象的静态特征,所以,属性一般是public的。
属性可以根据需要设置为只读,只写,提高数据的安全性
自动属性:
属性编写新语法(自动属性:.NET3.0及其后续版本)
private double height;//身高
public double Height{ get {return height}
set{height=value]
}
简化:
public double height{get;set;}
优点:
简化属性代码
快捷方式:
prop 然后按俩下TAB
适用要求:
不能直接操作私有字段
不能设置只读,只写属性
不能添加验证逻辑
方法定义要求:
注意事项:
- 访问修饰符:可以省略,默认为private,可以根据需要定义成public
- 方法名:一般是动词或者为动宾短语,采用Pascal,首字母大写,不能以数字开头
- 参数列表:根据需要添加,也可以省略,参数列表格式为“类型 参数名”的形式,使用逗号分割
- 有返回值:使用return返回,return语句不能在有语句,因为不执行
- 没有返回值:如果不返回任何数据,使用void表示
常见错误(3种):
错误1:忘记返回值
解决方法:
错误2:返回值定义类型和返回数据类型不一致
解决方法:
修改方法定义的返回值类型
修改实际返回的数据类型
错误3:变量在使用中超出作用域范围
变量的分类及其作用域:
在方法内部的变量,称为“局部变量”,只能在该方法内部使用
在方法外部,内部定义的变量,称为“成员变量”(也叫字段),可以在内部或者外部使用(很少在外部使用)
未完待续,持续更新......
C#基础(202)--类定义,字段与属性,自动属性,方法及常见错误的更多相关文章
- C#读取对象实例的值和对对象的属性自动赋值方法
using System; using System.Data; using System.Reflection; namespace DBUtility { /// <summary> ...
- Linq之隐式类型、自动属性、初始化器、匿名类
目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...
- c#4.5新语法--自动属性和隐式类型
1.自动属性 自动属性是c#中属性定义的两种形式的一种:传统属性定义.自动属性. 1.1 传统属性定义 private int _age; public int ...
- [C#详解] (1) 自动属性、初始化器、扩展方法
文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/CSharp-focus-1.html 代码下载:点我下载 目录 前言 属性与自动属性 属性 自动属 ...
- c#、vb 自动属性
vb示例: Public Property Name() As String = "Bob" 等效于 Private _name As String = "Bob&quo ...
- C#的隐式类型、匿名类型、自动属性、初始化器
1.隐式类型 1)源起 在隐式类型出现之前,我们声明一个变量时,需要为它指定相应的类型,甚至在foreach一个集合的时候,也要为遍历的集合元素,指定变量的类型,隐式类型出现后,程序员就不用再做这个工 ...
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...
- python基础(26):类的成员(字段、方法、属性)
1. 字段 字段:包括普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同. 普通字段属于对象 静态字段属于类 字段的定义和使用: class Province: # ...
- python 面向对象类成员(字段 方法 属性)
一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...
随机推荐
- JavaScript 作用域、命名空间及闭包
变量作用域: 1.一个变量的作用域是程序源代码中定义这个变量的区域 2.在函数内声明的变量是局部变量,它只在该函数及其嵌套作用域里可见(js 函数可嵌套定义):不在任何函数内声明或在函数内不使用 va ...
- gcc编译参数详解概述
gcc 编译器是经常使用的,可是,自己却没有针对它做过专门的研究,当遇到问题了,总结一下,算是对未来有个积累吧. 一 关于编译告警: 1 -w : 关闭所有警告,不建议使用 2 -W 开启素有gcc ...
- HBase——HMaster启动之一(HMaster的构建)
首先,让我们来到HMaster的main方法.我们今天的流程就从这里开始. 我们需要注意,下图所示的tool的类型就是HMasterCommandLine. 接下来,让我们来到HMasterComma ...
- python基础-字典(8)
一.字典介绍 字典和列表一样,也是存储多个数据的容器,只不过存储和读取的方式不同 字典的语法格式: 字典名 = {key1 : value1,key2:value2,key3:value3,……} 说 ...
- 1.numpy的用法
numpy创建ndarray对象的三种方法 1.1.list转化 In [8]: import numpy as np In [9]: a = [1,2,3,4] In [10]: x1 = np.a ...
- pylot测试工具环境搭建
1.下载Pylot:www.pylot.org/ 2. 安装Python 2.5 + (必须) 3. 安装wxPython(可选 - 用于GUI模式) 4. 安装numpy的(可选 - 用于报告以图表 ...
- 如何将云原生工作负载映射到 Kubernetes 中的控制器
作者:Janakiram MSV 译者:殷龙飞 原文地址:https://thenewstack.io/how-to-map-cloud-native-workloads-to-kubernetes- ...
- mysql 开发进阶篇系列 3 SQL 优化(索引使用方法)
一. 本章介绍mysql中的索引的分类,存储,使用方法的介绍 1. 索引的存储分类 MyISAM存储引擎的表的数据和索引是自动分开存储的,各自是独立的一个文件, innodb 存储引擎的表的数据和索 ...
- mysql 开发基础系列9 存储引擎 MyISAM 介绍
MyISAM是mysql 默认存储引擎,它不支持事务,外键.但访问速度快,对事务完整性没有要求或者以select,insert 为主的应用基本上都可以使用这个引擎.每个MyISAM在磁盘上存储成3个文 ...
- ES6躬行记(6)——Symbol
本节将会重点分析ES6引入的第6种基本类型:Symbol(符号).符号可以像字符串那样作为对象的属性名,只是它有唯一性的特点,可以避免属性名之间的冲突. 一.创建 符号没有字面量形式,只能通过Symb ...