《Inside C#》笔记(四) 类
类是对数据结构和算法的封装。
一 类成员
类成员包括以下几类,作者在后面的章节会详细讲解。
字段(用来保存数据,可用static readonly const来修饰)、方法(操作数据的代码)、属性(用来控制对类内部变量的访问)、常量、索引器、事件和运算符。
二 访问修饰符
public 可被外部的类和派生类访问
protected 只能被派生类访问
private 外部的类和派生类都不能访问
internal 程序集内部可访问
不管类本身还是类成员默认的修饰符都是private
三 Main 函数
每个C#应用程序都必须有Main函数,Main函数是应用程序的入口,且必须用public和static修饰。对Main函数的位置没有限制,编译器会自行查找。
Main函数的参数为一个string[]数组。可以通过使用命令行调用一个应用程序的Main函数来运行程序。
Main函数还可以有int类型的返回值,这在目前的可视化应用程序中用处不大,但如果是批处理程序,可以借助这儿的返回值来指示运行结果、错误码等。
还可以编写多个Main函数来设置多个程序入口,使用命令行运行时,可以使用/main:<入口函数名称>来切换入口。
四 构造函数
在类被初始化时,构造函数会首先执行。构造函数无法设置返回值。
五 静态类型
静态类型在包含改成员的应用程序启动时就会被创建,知道程序被关闭时才被销毁,静态类型成员在类被实例化之前就可以访问了。静态成员在声明时必须被赋值,如果没有赋值,编译器会自动使用对应类型的默认值。
六 常量与只读类型的区别
常量,关键字const,常量在编译时就会被赋值,等号的右边只能是确定的值,不能是表达式。可以使用常量来代替代码中的魔数,以增加代码的可读性。
只读类型,在初始化时赋值,随后不可再变动。这适用于编译器无法确定值,但在初始化后不可被修改的情况。可以在构造函数为只读类型赋值。如果在构造函数赋值只读类型,意味使用着该变量前必须实例化类,如果像直接使用,可以在静态构造函数中为其赋值,变量的修饰符相应地也要改为static readonly
《Inside C#》笔记(四) 类的更多相关文章
- 初探swift语言的学习笔记四(类对象,函数)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...
- [Scala]Scala学习笔记四 类
1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为 ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- Java加密与解密笔记(四) 高级应用
术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...
随机推荐
- scrapy Data flow
The data flow in Scrapy is controlled by the execution engine, and goes like this:1. The Engine gets ...
- Testing - 软件测试知识梳理 - 测试用例
测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...
- [宏]__stringify
Linux内核中有如下两个宏: #define __stringify_1(x...) #x #define __stringify(x...) __stringify_1(x) 写代码测试如下: # ...
- PHP扩展开发教程(总结)
PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工 ...
- ES6学习总结
const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了 const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo ...
- AutoCAD 凸度(bulge)的概念及使用WPF函数画图
前言 凸度(bulge)是AutoCAD 中一个非常重要的概念,凸度控制着两点之间弧度大小,弧度的方向.各种复杂的图像有可能就是成百上千的弧线组成的.从AutoCAD中导出的数据也有该值,一般的形式 ...
- 对python pickle的理解
python 提供了pickle模块,能将对象进行序列化,将对象以文件形式存放在磁盘. 几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化.但是序列化后的数据可读性很差. pic ...
- go runtime.Gosched()的作用分析
untime.Gosched()用于让出CPU时间片.这就像跑接力赛,A跑了一会碰到代码runtime.Gosched()就把接力棒交给B了,A歇着了,B继续跑. 看代码: package main ...
- mysql格式化时间戳为日期
MySQL中有一个像PHP的date函数一样的日期格式化函数DATE_FORMAT,使用这个函数时,需要像下面例子这样传递一个格式字符串和时间戳 SELECT DATE_FORMAT(NOW(),&q ...
- 使用Asp.Net Core MVC 开发项目实践[第一篇:项目结构说明]
先从下图看整体项目结构: Mango.Manager: 为后台管理项目 Mango.Web: 为前台项目 Mango.Framework.Core: 为常用的基础操作类项目 Mango.Framewo ...