C#基础再学习
本次观看C#中级教程视频进行对C#一些基础的再度学习,加深印象。
1.对于错误和异常。
错误可能是语法错误也可能是逻辑错误。可以通过断点进行调试。
断点快捷键F9。
异常,通过try catch捕获,做出异常处理。
2.面向对象的编程。
面向对象编程也称之为OOP编程。面对对象编程就是结构化编程,让代码模块化,结构清晰。
类理解为创建对象的模板,定义了每个对象的数据和功能。
类中的成员包括数据成员和函数成员。
类中的数据成员默认使用私有,防止外部访问。
构造函数与类同名,没有返回类型。NEW关键字创建类,就会调用构造方法。
在自定义构造函数之后,默认的构造函数会失效。
3.属性
对私有字段的封装,外部对私有字段访问的入口。
属性可以设置成只读,只写。
定义结构
Public int Te
{
get{return Te;}
set{Te =value;}
}
自动属性
Public int Te{get;set;}
4.var 匿名类型
5.堆和栈:程序运行时的内存区域
堆里的内存可以任意顺序存入和移除,可栈需要入栈和出栈。
GC是垃圾回收器。
值类型只需要一段单独的内存,存放数据在栈中。
引用类型需要两段,第一段存数据,位于堆中。第二段是一个引用(内存地址)(在栈中),指向堆中的存放位置。
引用类型赋值的时候,其实赋值的是引用,即重新指向,改变指向堆中的存放位置。
6.继承
一个类派生于另一个基类,拥有基类的所有成员(数据成员和函数成员).可以访问父类的公共的成员。
对象是什么类型的,看它是什么构造的。
Car car = new Train();
Train train = (Train)car;
train.runfast();
//car实际是Train类型但是不能使用其中的成员,必须进行强制转换。不转换的话,car只能调用父类的成员。
创建子类对象后,我们在子类里面重写虚方法,不管在哪里调用都是重写后的方法。
创建是父类对象则依然调用虚方法。
抽象类 abstract 不完整的模板,不能实例,需要子类实现。
继承了一个抽象类的时候,必须去实现抽象方法。也是使用override。
可以通过抽象类声明,使用里式替换原则。
sealed,密封类无法被继承,密封方法只可以把重写的方法声明为密封方法。
在子类中调用父类的默认构造函数,父类先调用。如果在子类中不声明调用父类的构造函数,默认调用父类无参构造函数。
7.接口
接口中只包含属性和方法签名 没有方法体。实现接口的类必须实现接口中的方法以及声明对应的属性。
抽象类和接口最大的区别是单继承和多继承
C#基础再学习的更多相关文章
- Git 基础再学习之:git checkout -- file
首先明白一下基本概念和用法,这段话是从前在看廖雪峰的git教程的时候摘到OneNote的 准备工作: 新建了一个learngit文件夹,在bash中cd进入文件夹,用以下命令创建一个仓库. $ git ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- objective-c基础教程——学习小结
objective-c基础教程——学习小结 提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- 函数:我的地盘听我的 - 零基础入门学习Python019
函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...
- 零基础入门学习javase,应该怎么学?这是我给你的一个建议
我们知道Java有三个方向,JavaSE,JavaME,JavaEE(老程序员可能会叫J2EE等,不过SUN已经改名了).JavaME主要是嵌入式与游戏开发.那我们先看JavaSE,因为只有学好了Ja ...
- GCC基础知识学习
GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...
- VBox&vmware虚拟机安装Linux及Linux基础入门学习
VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...
随机推荐
- 组件推荐Forloop.HtmlHelpers 用来实现MVC的js加载顺序
最近在开发的时候遇到js加载顺序的问题,layui在底部声明了js,但是我想在页面其他地方使用分布视图,分布视图内有自己的js逻辑,发现不能执行,一看就发现,这里的js应该加在layui后面执行才能有 ...
- BCP 数据导出
EXEC master..xp_cmdshell 'BCP test.dbo.name out d:\t_002.txt -c -t -T' EXEC master..xp_cmdshell 'BCP ...
- 描述下fastJSON,jackson等等的技术
①Jackson:依赖的jar包较少,简单易用性能高,更新速度也比较快,但是对于复杂类型的json转换bean会出 现问题,一些集合Map,List的转换出现问题,对于复杂类型的bean转换Json, ...
- TensorFlow实战第七课(dropout解决overfitting)
Dropout 解决 overfitting overfitting也被称为过度学习,过度拟合.他是机器学习中常见的问题. 图中的黑色曲线是正常模型,绿色曲线就是overfitting模型.尽管绿色曲 ...
- finereport 填报 单元格 JS 触发 提交SQL 事件
var location = this.options.location; var cr = FR.cellStr2ColumnRow(location); var col = cr.col; var ...
- SpringBoot上传文件
1.pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- Elasticsearch Metric聚合
首先查看index文档信息 $ curl -XGET "http://172.16.101.55:9200/_cat/indices?v" 输出 health status ind ...
- Minimum Score Triangulation of Polygon
Given N, consider a convex N-sided polygon with vertices labelled A[0], A[i], ..., A[N-1] in clockwi ...
- c++学习笔记之类和对象(三、static静态成员变量和静态成员函数)
一.static静态成员变量 对象的内存中包含了成员变量,不同的对象占用不同的内存,这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响.是有时候我们希望在多个对象之间共享数据,对象 a 改变 ...
- git使用技巧集合(持续更新中)
git使用技巧集合(持续更新中) 在团队协作中,git.svn等工具是非常重要的,在此只记录一些git使用过程中遇到的问题以及解决方法,并且会持续更新. 1.git commit之后,还没push,如 ...