自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 C# 泛型(Generic)

泛型(Generic),是将不确定的类型预先定义下来的一种C#高级语法,我们在使用一个类,接口或者方法前,不知道用户将来传什么类型,或者我们写的类,接口或方法相同的代码可以服务不同的类型,就可以定义为泛型。这会大大简化我们的代码结构,同时让后期维护变得容易。泛型很适用于集合,我们常见的泛型集合有:List<T>,Dictionary<K,V>等等(T,K,V就代表不确定的类型,它是一种类型占位符),无一不是利用的泛型这一特性,若没有泛型,我们会多出很多重载方法,以...

2020-11-24 18:28:52 242

原创 C#中的特性标签(Attribute)

这节讲一下:特性(Attribute)。特性,是用来给代码添加额外信息的一种手段,我们通常是将特性标记到方法,类或者属性上,在使用的这些结构的时候,通过反射(reflection)这一非常高级的技术,获取它们通过特性标记的信息,从而进行某些特殊的处理。系统也给我们提供了一些特性,比如Serializable标记一个可序列化的类,DebuggerStepThrough设置方法在调试时为跳过的状态。特性的使用很简单,在结构声明的上一行,用"[]"扩起特性类名即可:...

2020-11-22 11:47:35 4094 2

原创 .NET 反射(Reflection)

这节讲一下.NET 中的一个技术:反射(Reflection)。反射是一种很重要的技术,它可以在程序运行时,动态的获取类的实例,并调用实例中的任何方法。它就像一面镜子,映射出一个类的所有细节。typeof说反射之前,要先知道typeof这个关键字,它是反射的核心,typeof可以动态的获取某个类的类型信息,反射通过这些类型信息,就可以生成实例等一些操作。Reflection 反射的命名空间位于System.Reflection,下...

2020-11-18 19:34:03 1077

原创 C#代码中的线程安全问题(ThreadSafety)

这节讲一下线程安全的例子,以及如何解决线程安全问题。上节提到了线程安全的问题,说了一个例子,1000个人抢100张票,这节就从此案例着手,下面先看一下代码实现:private static int tickets = 100;static void Main(string[] args){ Thread thread = BuyTicket(); Thread thread2 = BuyTicket(); Thread thread3 = BuyTick...

2020-11-17 19:07:08 4152

原创 C# 多线程技术(Thread)

这节讲一下多线程(Thread)技术。在讲线程之前,先区分一下程序,进程,线程三者的区别,大体上说,一个程序可以分为多个进程,一个进程至少由一个线程去执行,它们是层层包含的关系。我们写的程序,就是一个进程,多个进程,以完成一个用户服务,或者完成一个大的界面展现,就组成一个程序,但在CPU层面,只有线程的概念,线程是最小的执行单位,Windows中采用CPU轮换制度,CPU给每个要执行的线程分配操作时间,轮流执行,但因为CPU的主频实在是太高,我们感受不到每个程序轮空期卡顿。一...

2020-11-17 19:02:43 1216

原创 基于任务的异步编程(Task,async,await)

这节讲一下比较高级的异步编程用法Task,以及两个异步关键字async和await。Task是在C#5.0推出的语法,它是基于任务的异步编程语法,是对Thread的升级,也提供了很多API,先看一下Task怎么使用:System.Threading.Tasks.Task.Run(() => { Console.WriteLine("异步"); }); System.Threading.Tasks.Task aTask=new System.Thread...

2020-11-17 18:58:35 477 2

原创 使用C#进行数据库增删改查ADO.NET(二)

这节接着讲用C#进行数据库CRUD,高级部分。事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改。C#提供了SqlTransaction类来处理数据库事务,下面通过一个示例方法来看一下这个类如何使用:using(SqlConnection connection=new SqlConnection(connString){ //开启连接 connection.Open(); using (SqlComm...

2020-11-16 18:56:54 276

原创 使用C#进行数据库增删改查ADO.NET(一)

这节讲一下如何使用C#进行数据库的增删改查操作,本节以SQL Server数据库为例。.NET 平台,使用ADO.NET 作为与数据库服务器的桥梁,我们通过ADO.NET就可以使用C#语言操作数据库,它的命名空间在System.Data下,要访问SQLServer数据库,就要引用其下的System.Data.SqlClient空间,若使用别的数据库,就要下载对应的包。例如,访问MySql数据库就要下载MySql.Data包。我们用C#连接数据库,首先要连接数据库,连接数据...

2020-11-16 18:48:07 716

原创 面向对象编程OOP(基于C#语言讲解)

这节讲一下,什么是面向对象(Object Oriented Programming)。说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面向过程的语言,这两者的区别在哪呢?我们可以设想一个情景——厨房做菜:以面向过程的形式解释来说,第一步:准备材料,第二步:起火,第三步:炒菜,第四步:上菜;面向过程就是编写一个个函数,每个函数执行一部分操作,最后根据这一套函数,执行下来完成一个整体需求为目的。那面向对象呢,我们同样...

2020-11-16 08:08:40 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除