随笔分类 -  C#语法相关

摘要:这节来讲一下C#中的表达式树(又称表达式目录树、Expression)。 什么是表达式树? 表达式树是一种C#中的数据结构,它以树的形式表示某些代码内部的结构。每个节点是一种称为表达式的C#对象,例如二元运算,方法调用,常量等。这种数据结构主要用于LINQ查询的内部机制和动态编程。在C#中,表达式树 阅读全文
posted @ 2023-08-12 22:14 宿春磊Charles 阅读(116) 评论(0) 推荐(0) 编辑
摘要:这节来讲一下C#中的匿名类型。 匿名类 在C#中,我们可以不去显示的声明一个类,而是通过匿名类去临时声明一个类结构去帮助我们去完成一些功能。 声明一个匿名类,我们可以像下面这样做: var Anonymous=new {name="charles",year=18};//声明匿名类对象 需要注意的是 阅读全文
posted @ 2022-08-14 18:40 宿春磊Charles 阅读(2122) 评论(0) 推荐(0) 编辑
摘要:这节来讲一个比较有意思的接口:IConvertible。 IConvertible接口处于System.Runtime命名空间下,这个接口规定了一批ToXxx()方法,凡是实现了这个接口的方法,我们都可以尝试将其转换为自己想要的类型。 我们来看一下IConvertible中的元素: 这里边涵盖了C# 阅读全文
posted @ 2022-05-03 12:37 宿春磊Charles 阅读(276) 评论(0) 推荐(0) 编辑
摘要:这节来讲一下泛型接口:IEquatable。 IEquatable泛型接口处于System.Runtime命名空间下,最早在.NET Framework 2.0中发布,只有泛型版本。像之前我们讲过的IComparable,IEnumerable接口,它们属于是1.0时期的内建接口,那时C#还没有泛型 阅读全文
posted @ 2022-05-01 13:51 宿春磊Charles 阅读(116) 评论(0) 推荐(0) 编辑
摘要:这节讲一下接口IEnumerable。 01 什么是Enumerable 在一些返回集合数据的接口中,我们经常能看到IEnumerable接口的身影。那什么是Enumerable呢?首先它跟C#中的enum关键字所表达的意思是不同的, 从翻译上来看:可枚举的,展开来说就是它的数据是一枚一枚可以让我们 阅读全文
posted @ 2021-12-12 21:45 宿春磊Charles 阅读(1743) 评论(0) 推荐(1) 编辑
摘要:这节开一个新的系列:C#内建接口,主要给大家讲一下C#内部给我们定义的一些常用的接口,以及它们是怎么使用的。基本上一节讲一个吧,本节先从IComparable开始。 01了解IComparable 一般的,值类型的数据比较大小,就是看它俩的值,这种比较很单纯,但是也有某些情况,我们需要对引用类型进行 阅读全文
posted @ 2021-12-03 21:31 宿春磊Charles 阅读(178) 评论(0) 推荐(0) 编辑
摘要:这节来解释一下,在异步编程中,等待多个Task的几个方法。 WaitAll & WaitAny Task.Wait(),这个是用来等待异步任务完成的一个方法,当我们有多个异步任务同时进行,需要等待所有异步任务完成或者等待某个异步任务完成的时候,就可以用WaitAll或WaitAny这两个方法,下面先 阅读全文
posted @ 2021-06-21 22:12 宿春磊Charles 阅读(1316) 评论(3) 推荐(0) 编辑
摘要:什么是委托? 委托(delegate)是一种托管方法的数据结构,它是一种引用类型,是对方法的引用。如果说int,string等是对数据类型的定义,那么委托就类似于对“方法类型”的定义,声明一个委托,就是声明一种方法签名,只要是和声明委托方法签名相同的方法,都可以被委托实例托管。那为什么叫委托呢,这个 阅读全文
posted @ 2021-05-11 21:58 宿春磊Charles 阅读(742) 评论(0) 推荐(0) 编辑
摘要:这节讲C#中的运算符重载。 方法有重载,运算符也有重载,设想一下,我们用加号计算int类型的数据,返回的也是int类型,这很正常,因为在数学中加号就是用来计算数字的。但是当我们用加号计算两个string类型的数据时,给我们返回的则是两个string数据连接在一起,难道加号应用于不同的场景,编译器就会 阅读全文
posted @ 2020-11-11 16:10 宿春磊Charles 阅读(86) 评论(0) 推荐(0) 编辑
摘要:文章代码如下: class Program { static void Main (string[] args) { //连接数据库 string connString = "server=.;database=Student;user id=sa;pwd=123456"; Console.Writ 阅读全文
posted @ 2020-10-27 15:09 宿春磊Charles 阅读(242) 评论(0) 推荐(0) 编辑
摘要:这节接着讲用C#进行数据库CRUD,高级部分。 事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改。C#提供了SqlTransaction类来处理数据库事务,下面通过一个示例方法来看一下这个类如何使用: using(SqlConne 阅读全文
posted @ 2020-10-27 15:07 宿春磊Charles 阅读(242) 评论(0) 推荐(0) 编辑
摘要:这节讲一下如何使用C#进行数据库的增删改查操作,本节以SQL Server数据库为例。 .NET 平台,使用ADO.NET 作为与数据库服务器的桥梁,我们通过ADO.NET就可以使用C#语言操作数据库,它的命名空间在System.Data下,要访问SQL Server数据库,就要引用其下的Syste 阅读全文
posted @ 2020-10-24 17:09 宿春磊Charles 阅读(511) 评论(0) 推荐(1) 编辑
摘要:这节讲三个小知识:索引器、ref、out。 索引器: 在一个类中,我们可以定义一个索引器,它可以让我们在外部像访问数组元素一样访问类的属性成员。 索引器的定义就像定义属性一样,只不过名称为this,后边接一个中括号声明索引类型,下面看示例代码: class MyIndexer { private i 阅读全文
posted @ 2020-10-22 17:20 宿春磊Charles 阅读(173) 评论(0) 推荐(0) 编辑
摘要:这节讲一下C#异常处理。 通过try{}块将可能会出错的代码包裹起来,后接catch块,try块出了错会走catch块,这一过程叫捕获异常。 int a = 2; try { a = a / 0; } catch { Console.WriteLine ("出错"); } 以上代码会抛出Divide 阅读全文
posted @ 2020-10-14 08:36 宿春磊Charles 阅读(413) 评论(0) 推荐(0) 编辑
摘要:这节讲一下接口(interface) 。 接口是一种特殊的抽象类,它用来定义一组行为规范,不同于抽象类的是,接口只能定义方法,并且只能定义抽象方法。类用继承来描述子类和父类之间的关系,而接口用实现来描述接口和类的关系。 interface IAnimal { void Shout (); } 接口有 阅读全文
posted @ 2020-10-14 08:33 宿春磊Charles 阅读(888) 评论(0) 推荐(0) 编辑
摘要:这节讲C#中的类,方法,属性。这是编码中我们最直接打交道的三个结构。 类: 类(class)是面向对象中最基本的单元,它是一种抽象,对现实世界中事物的抽象,在C#中使用class关键字声明一个类: class MyClass{} 类既然是一个抽象,我们使用的时候就要对其进行实例化,通过new关键字实 阅读全文
posted @ 2020-10-11 19:37 宿春磊Charles 阅读(5248) 评论(0) 推荐(0) 编辑
摘要:这节讲一下,什么是面向对象(Object Oriented Programming)。说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面向过程的语言,这两者的区别在哪呢?我们可以设想一个情景——厨房做菜: 以面向过程的形式解释来说,第一 阅读全文
posted @ 2020-10-11 16:19 宿春磊Charles 阅读(167) 评论(0) 推荐(0) 编辑
摘要:这节讲一下.NET 中的一个技术:反射(Reflection)。 反射是一种很重要的技术,它可以在程序运行时,动态的获取类的实例,并调用实例中的任何方法。它就像一面镜子,映射出一个类的所有细节。 typeof 说反射之前,要先知道typeof这个关键字,它是反射的核心,typeof可以动态的获取某个 阅读全文
posted @ 2020-10-11 09:54 宿春磊Charles 阅读(239) 评论(0) 推荐(0) 编辑
摘要:这节讲一下使用C#操作注册表。 首先来了解一下,什么是注册表,注册表是Windows中特有的一个东西,百度百科中对其解释如下:Windows注册表(Registry)实质上是一个庞大的数据库,它存储着下面这些内容:用户计算机软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸 阅读全文
posted @ 2020-09-01 07:39 宿春磊Charles 阅读(1905) 评论(0) 推荐(0) 编辑
摘要:这节简单讲一下enum枚举的使用。 枚举是一组常量,用于规范程序的开发,请先设想一个情景:在一个分组开发中,有一个类的属性是指人的性别,在没有一组规范的前提下,可能这个程序员会将性别值设置为:“男,女”,那个程序员会将性别值设置为:“male,female”,这样最后在整合的时候,就会出现问题。 为 阅读全文
posted @ 2020-08-21 10:02 宿春磊Charles 阅读(300) 评论(0) 推荐(0) 编辑