C# 快速入门
文章内容来源
文章是B站UP游戏谭的视频内容笔记。如有侵权立即删除。
链接: [link]https://www.bilibili.com/video/BV1sy4y1u7cw/?p=5&spm_id_from=pageDriver&vd_source=bef58c6219c539b73b93f44bae68c923)
C#的起源
console.readline \writeline
作用:在控制台输入或者输出一段字符;
Q:“Console” 控制台是什么?
A:在 Windows操作系统中,控制台称为"命令提示符"窗口并接受 MS-DOS 命令。
关键字
ref
作用:地址传递。区别于值传递。
示例:
C# 是没有指针的概念的。所以想实现地址传递,就得使用"ref"关键字.
pubulic private static
作用:定义作用范围;pubulic 表示可以在Class之外访问。 private 表示只能在class之内访问。
static概念:静态声明。可以声明属于类型本身而不属于特定对象的成员。不需要实例化就可以直接使用的变量。
partial
概念:部分的。是一部分类的定义。在大型项目中,在不同的独立文件中均有同一个类的部分定义,实现多程序员共同开发。
public partial class Employee
{
public void DoWork()
{
}
}
public partial class Employee
{
public void GoToLunch()
{
}
}
继承
概念:子类继承父类的属性。class b: a{}; 是一个由普通到特殊的类型定义的过程。比如“人"是"老师"的父类。
作用:父类是一个公共类型。子类是一个特殊类型。子类在父类的基础上去修改父类的变量定义。可以减少重复代码。
object
概念:是所有类型的基类。
interface
概念:接口,声明所有可以被调用的函数。
abstruct
概念:抽象声明,即在父类中没有实现,需要在子类中去实现。
virtual
概念:虚函数,类似C语言中的weak 可以重定义。
泛型
概念:将变量类型定义为可变的类型,减少“相似”类型的定义。在实例化对象时指定变量的类型。
示例:pubulic class GVector{}; GVector gf = new GVector (0,1);
其中尖括号内的T就是可变的变量类型,在实例化对象时指定;
变量类型
与C不同的变量类型:string、char.
作用:string 定义字符串变量。 char 用来定义字符。
举例:string name = “Cloop”; char Number = ‘M’;
重点: 对于字符串的操作是很方便的。例如获取长度,获取子字符串,字符串内容替换等等。
举例如下: length_tmp = name.length; // 获取字符串name的长度
还可以调用函数:
string name_tmp = name.substring(2,3); // 获取子字符串,从第二个字符开始,取三个字符;
Q:C#和C有没有变量类型差异?
A:
class 和 struct 的区别
概念:Class 是引用类型,定义在堆;struct 是值类型,定义在栈。内部定义的内容是相同,变量或者函数。
应用场景:
堆和栈中的变量
CLASS
定义:里面可以定义变量,函数等。
作用:
容器
函数指针
概念:保存多个函数的指针,实现多个函数的调用。使用+=、-=操作;
示例:delegate float GeneralFunc (int a, int b); // 符合这样形式的函数指针都可被保存。
运算符
Q:C#和C 语言有没有运算符差异?
异常
概念:程序编写不当,可能会出现异常。对异常不处理的话,会导致程序退出。
方法:使用try{} catch{}; 语句来实现异常捕获,对异常进行处理。
示例:如果obj是null空指令,后面使用.ToString()函数,是错误操作,会出现NullReferenceException错误。catch操作能捕获到这个错误,并且给出执行语句,避免程序异常退出。
throw
概念:异常抛出。当程序被调用时发生的异常不想处理时,就将异常抛出,让调用人来处理。
finally
概念:异常处理的一种方法。作用是无论如何,即使出现异常也会处理的内容。
索引器
概念:
C#应用场景
C# 的任务调度原理
如何调试C#代码
技巧:灵活使用断点和条件断点,观察变量值。
如何对C#代码增删改查
如何用C#实现一个界面应用
C#界面应用常用的函数?
C# 如何实现多线程,如何构思?如何实现?
方法:实例化多个线程的对象,并且初始化对象。更推荐使用task;
示例:thread t = new thread(
// 操作1;
// 操作2;
);
原理:多线程就是利用CPU的多核。
同时执行
同时执行+等待状态;
task:使用task来实现任务的调度。
await;等待当前任务执行完成,执行后面的任务。
list:使用动态数组来实现多任务的执行顺序。
拉姆达表达式??
C# 的优势
C#与.NET的关系?
.net 是框架,c#是在框架上的开发语言。