类是对数据结构和算法的封装。

一 类成员

类成员包括以下几类,作者在后面的章节会详细讲解。

字段(用来保存数据,可用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#》笔记(四) 类的更多相关文章

  1. 初探swift语言的学习笔记四(类对象,函数)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...

  2. [Scala]Scala学习笔记四 类

    1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为 ...

  3. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  4. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  5. 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...

  6. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  7. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  8. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  9. Java加密与解密笔记(四) 高级应用

    术语列表: CA:证书颁发认证机构(Certificate Authority) PEM:隐私增强邮件(Privacy Enhanced Mail),是OpenSSL使用的一种密钥文件. PKI:公钥 ...

随机推荐

  1. 抽取JDBC工具类并增删改查

    抽取工具类: package demo; /* * 工具类 */ import java.sql.Connection; import java.sql.DriverManager; import j ...

  2. JS应用实例5:全选、动态添加

    HTML代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  3. google的android工具常用下载路径

    android的bug工具在网上搜的时候,经常被索引到垃圾网站,今天找到了一个网站下载android工具 都是最新的,十分不错,就做个分享吧. Google 提供了 Windows.macOS 以及 ...

  4. laravel5.5 __construct函数 无法使用session() 解决方法和实例

    从网上查询资料得知,在laravel中使用__construct方法的时候,session还没开启,此时就需要用到中间件来解决. $this->middleware(function ($req ...

  5. 欧拉函数(C语言实现)

    欧拉函数(Euler's totient function)是指小于n的正整数中与n互质的数的数目,用φ(n)表示.特别的,φ(1)=1: 例如:φ(10)=4:1 3 7 9与10互质. 公式:φ( ...

  6. Xamarin.Android 关于so包报错问题

    问题描述:使用so包时报错. 解决方法: 1.保证 libs > armeabi 和 armeabi-v7a 中的so包一致. 2.去掉 x86,x86_64,arm64-v8a. 3. so的 ...

  7. .NET 构造DataTable返回多个json值

    有时候我们使用Ajax链接一般处理程序需要返回多个值,然而这些数据并非在一个查询表内,此时便想到构造一个虚拟的DataTable,这样就可以返回多个值了(当然有很多办法,这是其中一种 ). 首先我们需 ...

  8. Ubuntu 16.04 截图快捷键

    一.查看 "截图" 快捷键 打开 "系统设置",点击 "硬件" 下的 "键盘",然后点击 "快捷键" ...

  9. 21天打造分布式爬虫-urllib库(一)

    1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www. ...

  10. iOS事件拦截及应用

    1.概述 我们知道事件的分发是由Application到Window再到各级View的,所以显然最安全可靠的拦截地方是Application.这里拦截事件后如果不手动往下分发,则进入hit-test ...