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 ...
随机推荐
- LINUX安装SVN+添加自动同步+远程下载最新代码
LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...
- android实习程序6——拨号通话
拨号通话 ListView GridView AdapterView 在路径android-sdkr16\android-sdkr16\platform-tools确认存在adb.exe 下载youl ...
- C#简单验证并限制登录次数小示例
描述:提示用户输入用户名,密码,与数据库中的数据匹配,如果正确则提示登陆成功,否则,提示登陆失败 错误次数超过三次,提示登陆次数过多,禁止登陆 数据表示例: //数据库中ErrorTimes的次数增加 ...
- JS设计模式之观察者模式
观察者模式,即发布与订阅模式,实现一对多的一种关系模式,当一种对象接受信号时其他所有依赖均有行为.我们在写code的时候总是会去自定义一些事件,这就是观察者常常使用的地方: JS中的观察者模式应用: ...
- OpenGL ES 响应屏幕旋转 iOS
iOS下使用OpenGL 如果使用GLKit View 那么不用担心屏幕旋转的问题,说明如下: If you change the size, scale factor, or drawable pr ...
- Mac 安装 Grunt
第一步:安装brew 打开http://brew.sh/登陆brewhome官网,上面有安装命令. 第二步:安装node 第一步安装成功后,命令行输入 brew install node 第三步:安装 ...
- centos6.8 搭建nginx+uwsgi+Flask
1.安装 yum install nginx -y pip3 install uwsgipip3 install Flask 2.uwsgi配置(保存/etc/uwsgi.ini,run:uwsgi ...
- 怎样在linux或者Unix上检查端口是否在使用
英文原文链接:https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/ Question 1: 怎样在lin ...
- 递归思路分解(C#)
例子一:求1!+2!+......+X! 思路分解:因为是用递归思想解决问题,也就是方法调用方法.那么肯定的方法是重复利用的.在这道题里,我们要重复利用的也就是求X!和求和 所以我们先把求X!的代码写 ...
- ListView的局部刷新
有的列表可能notifyDataSetChanged()代价有点高,最好能局部刷新. 局部刷新的重点是,找到要更新的那项的View,然后再根据业务逻辑更新数据即可. private void upda ...