c#的学习记录
本人初学者,整个专栏用于记录学习c#的过程
风吹夜的雨
这个作者很懒,什么都没留下…
展开
-
一些特殊语法的总结
var隐式类型var能表示任意变量注意:1.不能作为类的成员,只能用于临时的变量申明2.var必须初始化设置对象初始值申明对象时,可以通过直接写大括号的形式初始化公共成员变量和属性例如Test t=new Test(){name=value};设置集合的初始值申明集合对象时,也可以通过大括号初始化例如申明数组或者List匿名类型var变量可以申明为自定义的匿名类型var v = new { age = 10, name = “sss” };可空类型值类型不能..原创 2021-11-09 20:51:51 · 108 阅读 · 0 评论 -
3个简单的预处理指令
可以让代码在编译之前进行预处理判断1#define 定义一个符号,类似于一个没有值的变量#undef 取消define定义的符号,让其失效一般写在脚本文件的最前面#define fh1#define fh2#undef fh22#if#else#elif#endif 结束if规则和if语句的语法一样#if fh1#elif fh2#else#endif3#warning#error告诉编译器是报警告还是报错误...原创 2021-10-19 21:52:18 · 72 阅读 · 0 评论 -
标准迭代器的简单介绍
迭代器是什么迭代器(iterator)有时又称光标(cursor)是程序设计的 软件设计模式迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素并且不暴露其内部的标识可以在容器对象(链表、数组等)上遍历访问设计人员无需关心容器对象的内存分配的实现细节可以用foreach遍历的类,都是实现了迭代器的标准迭代器的实现方法关键接口:IEnumerator、IEnumerable需要引入命名空间:using System.Collections;可以通过继承IEnumerator和IE原创 2021-11-09 20:39:05 · 224 阅读 · 0 评论 -
特性的简单介绍
特性的基本概念特性是一种允许我们相程序的程序集添加元数据的语言结构。是用于保存程序结构信息的某种特殊类型的类。特性提供功能强大的方法以将声明信息与c#代码相关联。特性与实体程序相关联后,即可在运行时使用反射查询特性信息。特性的目的是告诉编译器把程序结构的的某组元数据嵌入程序集中。它可以放置在几乎所有的声明中。特性的本质是类,可以利用特性为元数据添加格外信息。之后可通过反射来获取这些额外信息。自定义特性自定义特性要先继承 特性基类 Attribute class MyAttri原创 2021-11-09 20:26:15 · 283 阅读 · 0 评论 -
反射简单介绍
**程序集与元数据**什么是程序集?程序及是编译器编译得到的,供进一步编译执行的中间产物在windo系统中,一般表现后缀位.dll(库文件)或者是.exe(可执行程序).dll文件是类库工程文件,是纯代码逻辑,不能直接运行元数据元数据就是用来描述数据的数据,保存在程序集中。例如,程序中的类,类中的函数、变量等等。**反射的概念程序在运行时,可以查看其他程序集或者自身的元数据,这个过程叫做反射。通过反射,可以得到程序集中的各种信息。**反射的语法Type类Type 类的信息 类原创 2021-11-09 17:53:56 · 117 阅读 · 0 评论 -
多线程的简单介绍
进程进程(prcess)是计算机中的程序关于某数据集合的一次运行活动是系统进行资源分配和调度的基本单位,是操作系统结构的基础打开一个应用程序就是在操作系统上开启一个进程进程之间可以相互独立,互不干扰。也可以相互访问、操作线程操作系统能够进行运算调度的最小单位它被包含在进程之中,是进程中的实际运作单位已掉线城指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程简单理解:进程就是代码从上到下运行的一条“管道”多线程概念进程里面可以拥有多个线程我们可以通过代码打开多个.原创 2021-10-19 21:24:54 · 133 阅读 · 0 评论 -
Dictionary基础介绍
namespace DictionaryTest{ class Program { static void Main(string[] args) { #region Dictionary #region Dictionary本质 //泛型键值对 #endregion #region 申明 //需要引入命名空间原创 2021-10-11 18:22:08 · 180 阅读 · 0 评论 -
自己实现的一个简单单向链表
namespace DanXiangLianBiao{ /// <summary> /// 节点类 /// </summary> /// <typeparam name="T"></typeparam> class LinkedNode<T> { public T value; public LinkedNode<T> nextNode;//存储下一个元原创 2021-10-11 18:31:44 · 92 阅读 · 0 评论 -
List排序简单介绍
namespace ListPaiXu{ class ShopItem { public int id; public ShopItem(int id) { this.id = id; } } class Item: IComparable<Item>//自定义排序必须继承此接口 { public int money; pub原创 2021-10-11 18:30:49 · 91 阅读 · 0 评论 -
List基础介绍
namespace ListTest{ class Program { static void Main(string[] args) { #region List #region List本质 //List是一个可变类型的泛型数组 #endregion #region 申明 //需要引入命名空间using Sys原创 2021-10-11 18:20:03 · 103 阅读 · 0 评论 -
LinkedList介绍
namespace LinkedListTest{ class Program { static void Main(string[] args) { #region LinkedList #endregion #region 本质 //可变类型的双向链表 #endregion #region 申明原创 2021-10-11 18:23:27 · 60 阅读 · 0 评论 -
Queue&Stack基础介绍
namespace QueueAndStack{ class Program { static void Main(string[] args) { #region Queue&Stack //Queue 队列 先进先出 //Stack 栈 先进后出 #endregion #region 申明 //需要原创 2021-10-11 18:24:23 · 60 阅读 · 0 评论 -
c#常用数据结构及协变逆变
region ref和out //作用:解决值类型和引用类型 在函数内部 改值 或者 重新申明 能够影响外部传入的变量 让其也被改变 //out与ref的区别:1.ref传递的参数必须在外部初始化,out不需要。2.out必须在函数内部赋值,ref不用 #endregion ***region 里氏替换原则 #region 概念 //任何父类出现的地方,子类都可以替代 #endreg.原创 2021-10-11 18:17:20 · 90 阅读 · 0 评论 -
委托与事件及匿名函数和Lambda表达式简单介绍
namespace WeiTuoAndShiJian{ class Test//用于测试 { public Action a1; public void Do(int a,Action fun) { Console.WriteLine(a); fun(); } public Action GetFun() { retur原创 2021-10-11 18:29:19 · 73 阅读 · 0 评论