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 ...
随机推荐
- Web API 的安全性
Web API 的安全性 ASP.NET Web API 可非常方便地创建基于 HTTP 的 Services,这些服务可以非常方便地被几乎任何形式的平台和客户端(如浏览器.Windows客户端.An ...
- WIN7操作平台获取管理员权限批处理
在WIN7操作平台打开某些文件,如果需要管理员权限才能打开.通过下面的操作就可以获取管理员权限 创建批处理register文件.文件内容为,文件后缀名为.reg.然后双击该文件.打开需要访问的文件,如 ...
- Android开发(25)--framebyframe帧动画并实现启动界面到主界面的跳转
Drawable animation可以加载Drawable资源实现帧动画.AnimationDrawable是实现Drawable animations的基本类.推荐用XML文件的方法实现Drawa ...
- autotools入门笔记(二)——创建和使用静态库、动态库
带有静态库或者动态库的工程的构建过程与上一节()只包含一个源文件的工程的构建过程是类似的.只是对于复杂的工程,如果包含多个还有源文件的目录时,需要对每个包含源文件的目录执行构建过程,另外创建和使用库文 ...
- Js-Html 前端系列--Ajax
最近在做Web项目,用到很多Ajax,也遇到很多问题.下面与大家分享. Ajax传参 Ajax同步与异步 Ajax与谷歌浏览器 Ajax传参 我们一般传参有两种形式: $.ajax({ ... dat ...
- Nopcommerce架构浅谈之架构层次
前面谈到了系统的文件,从文件结构中我们也可以看出Nop的层次划分还是非常清晰,下面我将介绍下Nop的架构层次,并对每个层做简要的介绍,先看我画的层次图. 这个系统基本上按照了ddd的形式做了划分,我本 ...
- 将int,bigint整型数值可逆转换字符串
将 Int 和 BigInt 类型数值转换为字符串的可逆方法,可用于缩短网址或记录的ID转换等. 如: 9223372036854775807 => aZl8N0y58M7 class Conv ...
- python——爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...
- subsequence/subsets/subarray/substring problems
128. Longest Consecutive Sequence hashmap, int up = nums[i], int down, int max 注:访问过的要erase 152. Max ...
- MQTT协议之 Apache Apollo服务
一.说明 MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网) ...