C# 从零开始 vol.1
说好的java只能先坑了,毕竟计划赶不上变化,以下是 c# 基础部分。
1:变量,方法的命名方式
目的就是一眼看到实例名 方法名 就知道该变量是做什么的。
主流的命名方式有驼峰命名规则,pascal命名规则,以及匈牙利命名规则。
先看案例 :
var NewCamel = new Camel(); //pascal命名规则
var newCamel = new Camel();//驼峰命名规则
var CnewCamel = new Camel();//匈牙利命名规则
其中区别就是 pascal 命名需要每个单词首字母大写,而驼峰命名则是 第一个单词首字母小写,之后的单词首字母大写。
匈牙利命名规则比较特殊,首字母表示了实例的类型。
通常c#的命名规则使用 驼峰命名规则,但是接口则使用了匈牙利命名规则(接口的命名通常以 I 作为开头)。
字段 则开头使用下划线 。
2:进程
一个应用程序 拥有一个进程,一个进程是由多个线程组成的,进程在内存中分配程序执行所需要的空间,可以操作进程来操作应用程序。
3:面向对象
面向对象主要的优势:封装,继承,多态。
封装:封装复杂性,一段代码到处复制是肯定不可以的,工具等方法 一般都是封装成 静态类,会操作共有资源的需要加锁。
继承:一个功能可能有许多实现方式,比如从本地硬盘读取一首歌,从网络读取一首歌等,这样就可以创建一个接口,这个接口有一个Read(); 方法,读取本地硬盘的方法实现这个接口,读取网络的方法也实现这个接口,这样就能在需要的时候根据不同的方法来调用这个接口,创建实例,同时AOP 能让这项优势扩大(动态代理,持久化实例等)。
特性:
单根性:只能继承一个类。
传递性:父类也可以继承其他类。
里氏转换:子类赋值给父类,(协变和逆变)如果父类引用的是子类对象,则可以将这个父类转换成对应的子类。
is 和 as 关键字:
is 的用法:
var int32 = new Int32();
if(int32 is Int32){
//do something
}else{
//do else something
}
as 的用法:
var asResult = int32 as Int32;
if(asResult!=null){
//do something
}else{
//do else something
}
多态:
虚方法:用 关键字 virtual 装饰方法名,表示可以重写,子类中 使用override 重写标记了 virtual 的方法。
抽象类:abstract 类 中可以包含非抽象的方法,但非抽象类不能包含抽象方法。
4:new this base:
new 创建对象:
在堆中开辟空间。
在开辟的空间中创建对象。
调用对象的构造函数。
this :
代表当前对象(构造函数)。
base :代表父类对象(构造函数)。
5:访问修饰符:
public :任何地方都能访问。
private:只能在当前类的内部访问。
internal :只能在当前程序集中访问。
protected:只能在当前类和该类的子类中访问。
其中public internal 可以修饰类,其他只能修饰变量。
类的默认修饰符是 internal。
子类的访问权限不能高于父类(只能相等或小于)。
C# 从零开始 vol.1的更多相关文章
- C# 从零开始 vol.2
这是第二篇 1:命名空间 命名空间可以理解成类的文件夹,这个命名空间中存放着各种类,当你需要使用到对应的类的时候,就需要导入命名空间后才能使用. 引用:可以理解成添加新的存放类的文件夹,也就是一个项目 ...
- 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发
蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...
- 蒲公英 · JELLY技术周刊 Vol.32: 前端的自我进化之路
蒲公英 · JELLY技术周刊 Vol.32 前端开发不过是切图仔在那儿瞎鼓捣,没啥门槛,不需要懂计算机原理,不需要懂算法,微服务.高并发这些都不需要懂,拖组件写个页面就好了,数据.逻辑.测试都可以交 ...
- 技术期刊 · 天光台高未百尺 | Uber 工程师的 JS 算法课;大数据时代的个人隐私;设计师的 Github;告别 PPT 工程师;从零开始实现的像素画
蒲公英 · JELLY技术期刊 Vol.42 这是一个最好的时代,多样化的平台给了所有人成长发展的机会,各种需求和解决需求的人让人大开眼界:但这也并不是完美的时代,"前端还需要懂什么算法?& ...
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- 从零开始编写自己的C#框架(25)——网站部署
导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...
- ASP.NET从零开始学习EF的增删改查
ASP.NET从零开始学习EF的增删改查 最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...
- 【从零开始学BPM,Day5】报表配置及自定义功能页面开发
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第五天课程] 1.课程概要 Step 1 软件下载:H3 BP ...
- 【从零开始学BPM,Day4】业务集成
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第四天课程] 1.课程概要 Step 1 软件下载:H3 BP ...
随机推荐
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
一.构造函数.默认构造函数 (1).构造函数 构造函数是特殊的成员函数 创建类类型的新对象,系统自动会调用构造函数 构造函数是为了保证对象的每个数据成员都被正确初始化 函数名和类名完全相同 不能定义构 ...
- 关于js关闭浏览器技术细谈
前言:前端时间做项目遇到一个js的问题,需要使用js关闭浏览器,在原有js代码是有这样功能的, 代码如下 window.close(); 但是呢,chrome,firefox等中有时候会不起作用. 后 ...
- CodeForces 735D Taxes
哥德巴赫猜想. 如果$n$是素数,答案为$1$. 如果$n$不是素数,但$n$是偶数,由哥德巴赫猜想可知答案为$2$. 如果$n$不是素数,且$n$为奇数,此时可以将$n$拆成$3+$偶数或者$2+$ ...
- Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
在10.40.100.148上 # docker run -d -p 5000:5000 --restart=always --name docker-registry.venic.com - ...
- [UWP小白日记-12]使用新的Composition API来实现控件的阴影
前言 看了好久官方的Windows UI Dev Labs示例好久才有点心得,真是头大.(其实是英语幼儿园水平(⊙﹏⊙)b) 真的网上关于这个API的资料可以说几乎没有. 正文 首先用这东西的添加WI ...
- svn问题(队列)
svn执行clean up命令时报错"Previous operation has not finished; run 'cleanup' if it was interrupted&quo ...
- MATLAB编译器
1. mcc filename.cpp 或者mcc filename.c 可以将cpp或者c源程序文件,编译为filename.mexw32(32位系统)或者filename.mexw64(64位系统 ...
- js中角度计算
-. js 关于三角函数算法 弧度 和 角度的理解, 以及相互转换 角的两种单位 度 和 弧 1.弧度的定义 我们知道"度"的定义是,"两条射 ...
- flume 以 kafka 为channel 的配置
#此配置以kafka的一个topic为channel,相比其他channel类型 file和cache 兼并了快和安全的要求!# Define a kafka channel a1.channels. ...
- php 常量定义
php常量定义及取值 常量在定义时赋值: 不能变 :不能销毁: 具有超全局作用于:常量只能储存标量数据(字符 整型 浮点 ): <?php define("hello", ...