.NET C#基础知识整理

本文介绍了C#的基础知识,包括泛型的概念及其作用,减少类型转换提高效率。讨论了装箱和拆箱的过程,以及值类型和引用类型的区别。讲解了Object类作为所有类的基类的重要性。同时,解释了void关键字在方法返回类型中的应用。此外,还涉及了委托这一概念,以及语法糖在简化代码方面的作用。最后,概述了继承、虚函数和重写等面向对象特性。

1、泛型
泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。比如泛型容器可以存储不同类型的元素对象
泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。
2、装箱与拆箱1
装箱与拆箱2
定义了object类型的会涉及到装箱拆箱。
装箱是将值类型转换为引用类型。
拆箱就是将引用类型转换为值类型。
int i=5;
object o=i;//装箱
int j=(int)o;//拆箱

值类型和引用类型
C#的引用类型包括:数组、委托、接口、object、字符串、用户定义的类。
C#的值类型包括:数值类型、结构体、bool型、枚举、可空类型、用户定义的结构体。
3、object类
Object类是C#中最原始、最重要的类,是所有类的“祖先”,每个C#类都是它的子类,它实现了每个类都必须具有的基本方法。 这里指的“所有类”,即不管是C#系统所提供的标准类,还是用户自行编写的类,都是从Object类直接或间接继承而来,它是类层次结构中的顶级类,即C#树型类层次结构的“根”。
4、关键字
void关键字
基本上,它的意思是“无”或“无类型”。
如果函数不需要返回值,即可以用void做返回类型。
void 返回类型不带参数,void 关键字指定方法不返回值。

5、委托

6、语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。
它可以使程序员更加容易去使用这门语言:操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。
简而言之,语法糖就是一种便捷写法。

7、
继承:就是一个类可以继承另一个类的属性和方法(成员)
虚函数:继承和重写时用到。
用到关键字:virtual关键字,override关键字

重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。
new和重写关键字override的区别

重写和重载
“重写和重载的区别:重载是定义相同的方法名,参数不同,重写是子类重写父类的方法;重载是在一个类中,重写是子类与父类之间;重载是编译时的多态性,重写时运行时的多态性。”

1、我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者, 管Test()函数称之为被调用者。 如果被调用者想要得到调用者的值: 1)、传递参数。 2)、使用静态字段来模拟全局变量。 如果调用者想要得到被调用者的值: 1)、返回值 2、 不管是实参还是形参,都是在内存中开辟了空间的。 3、方法的功能一定要单一。 GetMax(int n1,int n2) 方法中最忌讳的就是出现提示用户输入的字眼。 4、out、ref、params 1)、out参数。 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。 但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候, 我们可以考虑使用out参数。 out参数就侧重于在一个方法中可以返回多个不同类型的值。 2)、ref参数 能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。 ref参数要求在方法外必须为其赋值,而方法内可以不赋值。 3)、params可变参数 将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。 params可变参数必须是形参列表中的最后一个元素。 5、方法的重载 概念:方法的重载指的就是方法的名称相同给,但是参数不同。 参数不同,分为两种情况 1)、如果参数的个数相同,那么参数的类型就不能相同。 2)、如果参数的类型相同,那么参数的个数就不能相同。 ***方法的重载跟返回值没有关系。 6、方法的递归 方法自己调用自己。 找出一个文件夹中所有的文件。 1、画游戏头 2、初始化地图(加载地图所需要的资源) 将整数数组中的数字编程控制台中显示的特殊字符串的这个过程 就是初始化地图 3、画地图 4、玩游戏 游戏规则: 如果玩家A踩到了玩家B 玩家B退6格 踩到了地雷 退6格 踩到了时空隧道 进10格 踩到了幸运轮盘 1交换位置 2 轰炸对方 使对方退6格 踩到了暂停 暂停一回合 踩到了方块 神马都不干 Map[50] if(map[40]==1) { Console.WriteLine("◎"); } //初始化地图 Map[6]=1 //我用0表示普通,显示给用户就是 □ //....1...幸运轮盘,显示组用户就◎ //....2...地雷,显示给用户就是 ☆ //....3...暂停,显示给用户就是 ▲ //....4...时空隧道,显示组用户就 卐 int[] luckyturn = { 6, 23, 40, 55, 69, 83 };//幸运轮盘◎ int[] landMine = { 5, 13, 17, 33, 38, 50, 64, 80, 94 };//地雷☆ int[] pause = { 9, 27, 60, 93 };//暂停▲ int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };//时空隧道卐 for(int i=0;i<luckyturn.Length;i++) { int n=luckyturn[i]; Map[n]=1; } for(int i=0;i<landMine.Length;i++) { int n=landMine[i]; Map[n]=1; } public static void Win() { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(" ◆ "); Console.WriteLine(" ■ ◆ ■ ■"); Console.WriteLine(" ■■■■ ■ ■ ◆■ ■ ■ ■"); Console.WriteLine(" ■ ■ ■ ■ ◆ ■ ■ ■ ■"); Console.WriteLine(" ■ ■ ■■■■■■ ■■■■■■■ ■ ■ ■"); Console.WriteLine(" ■■■■ ■ ■ ●■● ■ ■ ■"); Console.WriteLine(" ■ ■ ■ ● ■ ● ■ ■ ■"); Console.WriteLine(" ■ ■ ■■■■■■ ● ■ ● ■ ■ ■"); Console.WriteLine(" ■■■■ ■ ● ■ ■ ■ ■ ■"); Console.WriteLine(" ■ ■ ■ ■ ■ ■ ■ ■"); Console.WriteLine(" ■ ■ ■ ■ ■ ■ "); Console.WriteLine(" ■ ■ ■ ■ ● ■ "); Console.WriteLine(" ■ ■■ ■■■■■■ ■ ● ●"); Console.ResetColor(); }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值