
C#基础
学习黑马传智播客之后的笔记,记录一下,留下痕迹
sunny7878
这个作者很懒,什么都没留下…
展开
-
021-多态 虚方法 抽象类 接口
021-多态 虚方法一、多态1、意在让一个对象能够表现出多种的类型、状态;(能让父类表现出每个子类类型出来,就完美了,就不用写类型转换了)2、实现多态的方法:虚方法、抽象类、接口注:实现多态,都是声明父类,去指向子类Person p = new Teacher();二、虚方法实现1、在父类的函数前面加上virtual关键字,标记为虚方法。2、在子类的每个函数前面加上override关键字,表示重写父类的虚方法。3、多态的优点:我们将不同的子类对象都当作父类来看,这样可以避免子类之间的原创 2020-07-05 23:34:58 · 273 阅读 · 0 评论 -
C# 泛型是什么、泛型缓存、泛型约束
学完泛型以后,能够轻松的应对在项目中需要使用泛型的地方。走向高级开发的一个必备特训引入泛型:延迟声明如何声明和使用泛型泛型的好处和原理泛型缓存什么是泛型List泛型其实就是 带尖括号的;在声明的时候还有可能带有类型参数;1.任何父类出现的地方都可以用子类来代替。2.Object是一切类型的父类。缺陷:1.类型安全问题2.性能问题,会涉及到装箱拆箱,性能损失很大既需要一个...原创 2020-05-09 22:23:36 · 908 阅读 · 1 评论 -
020-using的三种用法
020-using的三种用法using1.作为指令使用:用于为命名空间创建别名或导入其他命名空间中定义的类型优点:使我们可以在程序中直接用命名空间中的类型,而不必指定类型的详细命名空间2.Using语句:定义一个范围,在范围结束时处理对象。场景:当某个代码中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类的Dispose,要达到这样的目的,用try…c...原创 2020-04-29 22:30:38 · 246 阅读 · 0 评论 -
019-访问修饰符
019-访问修饰符类中成员都需要定义访问级别,控制成员在哪些地方可以被访问,达到面向对象中“封装”的目的,默认是private类前面默认是internal,只能是public和internal修饰public:公共访问修饰符,任意地方private:私有访问修饰符,只能当前类中访问internal:只能在当前程序的内部访问,出了这个程序就不能访问protected:只能在当前类的内部...原创 2020-04-29 22:25:23 · 119 阅读 · 0 评论 -
018-装箱、拆箱
018-装箱、拆箱装箱:值类型——>引用类型拆箱:引用类型——>值类型int n = 10;object o = n; //装箱double nn = (int) o; //拆箱:装箱是用的什么类型,拆箱也要用什么类型。判断是否有拆装箱,首先判断2个数据类型是否有继承父类,有了再判断是否进行了类型转换,判断拆装箱尽量不要用拆装箱...原创 2020-04-29 22:23:57 · 109 阅读 · 0 评论 -
017-继承
一、继承why?我们在设计类的时候,会发现,有很多类中会具有相同的成员,为了减少冗余代码,我们将这些相同的成员提取出来,单独封装成了一个类,作为其他类的“父类或基类”,其他类是这个类的“子类或派生类”。Student stu = new Student(); //创建对象,在堆中开辟空间,调用对象的构造函数。how?1>我们看一个类是否继承于另一个类,首先要检查是否有:冒号,如果...原创 2020-04-29 22:22:09 · 165 阅读 · 0 评论 -
016-可变字符串字符StringBuilder
016-可变字符串字符StringBuilderStringBuilder 类表示可变字符字符串。 无法继承此类。此类表示一个类似字符串的对象,其值为可变字符序列。继承 Object StringBuilder属性 ComVisibleAttribute SerializableAttribute实现 ISerializableString 和 StringBuilder 类型...原创 2020-04-29 22:15:38 · 189 阅读 · 0 评论 -
015-字符串的不可变性,字符串方法相关
015-字符串的不可变性,字符串方法相关一、字符串可以看成只读字符char数组 string str='abcd'; char c = str[3]; str[3] = "m" ——会报错二、字符串具有不可变性 (体现在堆中) string str = "abc"; str = "ccc";三、高效拼接字符串: StringBuilder (字符串量大的时候使用)...原创 2020-04-29 22:11:01 · 251 阅读 · 0 评论 -
014-值类型和引用类型
014-值类型和引用类型一、堆和栈的区别栈是编译期就分配好的内存空间,所以代码中必须确定栈的大小堆是程序运行期间动态分配的内存空间二、值类型和引用类型引用类型:引用类型的 引用(地址)放在栈上,值放在堆上值类型: 值存放在 栈上...原创 2020-04-29 22:03:47 · 191 阅读 · 0 评论 -
013-静态与非静态
013-静态与非静态一、静态 static调用 :类名.成员名适用场景a. 你的资源需要全局享用 共享的时候。b. 如果你写的类需要被当做工具类来使用,典型的工具类(Console)。静态类中的成员必须是静态的。静态类不能被实例化(因为它只有一份,实例化就会有很多份)。静态类成员先对象一步进入内存中。静态成员只有在整个程序结束的时候才能够被释放资源,所以程序中的静态成员越少越好...原创 2020-04-29 21:57:28 · 146 阅读 · 0 评论 -
012-面向对象(OO)、类和对象、属性、构造函数
012-019-面向对象(OO)、类和对象、属性、构造函数面向对象(Object-Oriented Programming)先有对象,才有类面向过程:面向完成这件事的过程,强调完成这件事的动作和细节。代码通用性低,客户需求改变,代码可维护性低。例子:把大象放进冰箱小红力气不大,要把大象放进冰箱小红步骤: a.小红含着泪,用腿撬开冰箱门; b.小红踢了一下大象屁股,大象钻进了...原创 2020-04-28 22:02:43 · 166 阅读 · 0 评论 -
011-方法(函数)
011-方法(函数)方法(函数)方法:找一个人帮我们做事,解决代码冗余问题,将一堆代码进行重用的一种机制。函数:就是一段代码,这段代码可能有输入值(参数),返回值。格式:【访问修饰符】 【static】 返回值类型 方法名(【参数列表】){方法体;return 值;}方法名:Pascal命名法参数:Camel命名法找一个人帮你做事,有条件,有结果return返回方...原创 2020-04-28 21:52:22 · 153 阅读 · 0 评论 -
010-常量、枚举、结构、数组
010-常量、枚举、结构、数组一、常量在程序运行过程中,其值是不能发生改变的量const int number = 5;定义的时候就必须赋值。二、枚举定义:是用户定义的一组整数类型。理解:可以理解为将一些常用的且属于同一类型的常量放在一起,当使用时,直接使用枚举列出其中的值,使用其中一个就行了。比如定义一个颜色的枚举,在设置某个颜色时候,直接枚举.颜色就行了使用:定义好的枚举可以直...原创 2020-04-28 21:44:55 · 207 阅读 · 0 评论 -
009-类型转换
009-类型转换运算符两边的数据类型必须一致,且表达式的值 也是运算符两边的数的类型,不一致时,要先转换,再运算。自动类型转换(隐式类型转换):将精度低的转为精度高的数据,系统自动进行,不会造成数据精度丢失。前提:类型兼容 double&int double&string目标类型精度大于源类型显式类型转换(强制转换): int num1 = (int)3.3...原创 2020-04-28 14:13:09 · 153 阅读 · 0 评论 -
008-运算符
008-运算符一、算术运算符+ 、 - 、 * 、 / 、 %注:同类型数据组成表达式结果还是该类型数据二、复合运算符+= 、 -= 、 *=、 /=、 %= 、 ++ 、 –三、关系运算符> 、 < 、 ==、 != 、 >= 、 <=关系运算符的结果为bool类型 true / false四、逻...原创 2020-04-28 14:03:56 · 163 阅读 · 0 评论 -
007-交换两个变量的值
007-交换两个变量的值法一:a = i; i = j; j = a;法二、通过数据运算,不使用第三个变量i = i + j;j = i - j;i = i - j;原创 2020-04-28 13:59:56 · 107 阅读 · 0 评论 -
006-赋值、表达式、加号、占位符、转义字符
一、赋值:1、赋值运算符: =2、赋值表达式:num = num + 1二、表达式:由运算符连接起来的句子,每个表达式都可以求解出一个值。三、加号(+)的作用1、两边都是数字,则是数字意义上的相加2、两边任意一边为字符串时,表示拼接字符串四、占位符: {0},{1}等Console.WriteLine(“我是{0},{1}”, “阿飞”, “你好”);五、转义字符1、+字符:...原创 2020-04-28 13:57:14 · 643 阅读 · 0 评论 -
005-变量存放数据的过程
作用:用于在计算机中存储数据内存地址的弊端:没有意义,且没有任何规律 ,不方便记忆例子:张阿三 出差 上海 =》高铁到达 下车:找宾馆 =》前台1个人=》单间 开房间=》门牌号520 =》找到房间=》放下东西2个人=》双人床 开房间=》门牌号520 =》找房间=》 放下东西3个人=》标间 开房间=》门牌号520 =》找房间=》 放下东西开房 ...原创 2020-04-28 13:53:01 · 355 阅读 · 0 评论 -
004-VS基本设置(快捷键、智能提示)
字体: 加粗的是微软推荐的字体快捷键: Ctrl+J 弹出智能提示 Ctrl+ K+ S 折叠冗余代码 ===》#region shift + ↑ / ↓ :向上选中,向下选中 F1 : 打开帮助文档 Ctrl+ shift + U: 转为大写 Ctrl+ U: 转为小写...原创 2020-04-28 13:46:22 · 945 阅读 · 0 评论 -
003-csc编译代码过程
按F6可以检查代码汇中是否有语法错误【=》生成解决方案】1.把路径加入环境变量2.cmd=》输入csc.exe3.可以编译桌面文件 1.cs csc 1.cs 就可以执行程序...原创 2020-04-28 13:43:49 · 437 阅读 · 0 评论 -
002-IDE介绍和.Net版本
IDE:Intergrated Development 集成开发环境vs 为快速开发提供强大支持版本:版本向下兼容vs项目的结构解决方案的关系:解决方案=》包含多个项目=》包含多个类公司 =》部门 =》员工解决方案文件夹解决方案文件(.sln)包含着解决方案的全部信息,双击可打开项目文件夹包含多个类文件项目文件(.csproj)包含项目的...原创 2020-04-28 13:31:39 · 224 阅读 · 0 评论 -
001-.NET平台和Csharp语言
.Net/dotnet:一般是指.NET Framework,是一种平台(如舞台),一种技术C#(CSharp):是一种编程语言,可以开发基于.Net平台的应用.Net和.Net Framework 的关系:.Net Framework框架为.net平台的正常运行提供稳定的运行环境和资源,保证.Net平台的正常运行,并且.Net Framework 框架是包含在.Net平台中的。(C...原创 2020-04-28 13:15:15 · 1334 阅读 · 0 评论