《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:公钥 ...
随机推荐
- 抽取JDBC工具类并增删改查
抽取工具类: package demo; /* * 工具类 */ import java.sql.Connection; import java.sql.DriverManager; import j ...
- JS应用实例5:全选、动态添加
HTML代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- google的android工具常用下载路径
android的bug工具在网上搜的时候,经常被索引到垃圾网站,今天找到了一个网站下载android工具 都是最新的,十分不错,就做个分享吧. Google 提供了 Windows.macOS 以及 ...
- laravel5.5 __construct函数 无法使用session() 解决方法和实例
从网上查询资料得知,在laravel中使用__construct方法的时候,session还没开启,此时就需要用到中间件来解决. $this->middleware(function ($req ...
- 欧拉函数(C语言实现)
欧拉函数(Euler's totient function)是指小于n的正整数中与n互质的数的数目,用φ(n)表示.特别的,φ(1)=1: 例如:φ(10)=4:1 3 7 9与10互质. 公式:φ( ...
- Xamarin.Android 关于so包报错问题
问题描述:使用so包时报错. 解决方法: 1.保证 libs > armeabi 和 armeabi-v7a 中的so包一致. 2.去掉 x86,x86_64,arm64-v8a. 3. so的 ...
- .NET 构造DataTable返回多个json值
有时候我们使用Ajax链接一般处理程序需要返回多个值,然而这些数据并非在一个查询表内,此时便想到构造一个虚拟的DataTable,这样就可以返回多个值了(当然有很多办法,这是其中一种 ). 首先我们需 ...
- Ubuntu 16.04 截图快捷键
一.查看 "截图" 快捷键 打开 "系统设置",点击 "硬件" 下的 "键盘",然后点击 "快捷键" ...
- 21天打造分布式爬虫-urllib库(一)
1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www. ...
- iOS事件拦截及应用
1.概述 我们知道事件的分发是由Application到Window再到各级View的,所以显然最安全可靠的拦截地方是Application.这里拦截事件后如果不手动往下分发,则进入hit-test ...