![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
num197
这个作者很懒,什么都没留下…
展开
-
C#中的事件和委托
1.C#中的事件和委托的作用? 事件代表一个组件能够被关注的一种信号,比如你的大肠会向你发出想拉屎的信号,你就可以接收到上厕所。 委托是可以把一个过程封装成变量进行传递并且执行的对象,比如你上蹲坑和上坐马桶拉屎的方式是不一样的,但是你的大脑不需要知道两种方式的不同,只需要在蹲坑的时候获取身体用于蹲位姿势的委托进行调用拉屎,在坐马桶的时候获取坐姿的委托进行调用拉屎。2.他们之间的关系? 委...原创 2018-05-03 16:39:02 · 184 阅读 · 0 评论 -
C# 基础 (1) 值类型和引用类型
1.值类型(ValueType)值类型包括:数值类型,结构体,bool型,用户定义的结构体,枚举,可空类型。 值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型的变量name=’C’,当实例化它的方法结束时,name变量在栈上占用的内存就会自动释放 C#的所有值类型均隐式派生自System.ValueType。结构体:stru...转载 2018-05-16 21:07:01 · 1381 阅读 · 0 评论 -
C# 多线程(4)Task的使用
一、Task的机制在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务。线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值。但是在C#4.0中引人了一个的任务(System.Threading.Tasks命名空间的类型)机制来解决异步操作完成时间和完成后返回值的问题。其实现机制大致类似于线程池ThreadPool,不过对于Thr...转载 2018-05-15 11:47:02 · 8067 阅读 · 1 评论 -
C# 多线程(3)CLR线程池
一、关于CLR线程池使用ThreadStart与ParameterizedThreadStart建立新线程非常简单,但通过此方法建立的线程难于管理,若建立过多的线程反而会影响系统的性能。 有见及此,.NET引入CLR线程池这个概念。CLR线程池并不会在CLR初始化的时候立刻建立线程,而是在应用程序要创建线程来执行任务时,线程池才初始化一个线程。线程的初始化与其他的线程一样。在完成任务以后,该...转载 2018-05-14 21:10:42 · 743 阅读 · 1 评论 -
C# 多线程(2)多线程同步
我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果有多个线程同时访问共享数据的时候,就必须要用线程同步,防止共享数据被破坏。如果多个线程不会同时访问共享数据,可以不用线程同步。如果...转载 2018-05-14 17:56:01 · 773 阅读 · 0 评论 -
C# 多线程(1)多线程基础
一、基本概念进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windo...转载 2018-05-14 11:39:37 · 689 阅读 · 0 评论 -
C# 基础 (3) 垃圾回收机制(Garbage Collector)
一、GC的前世与今生虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。但后来的日子里Lisp却没有成气候,采用内存手动管理的语言占据了上风,以C为代表。出于同样的理由,不同的人却又...转载 2018-05-16 23:19:20 · 2750 阅读 · 0 评论 -
C#中流行的ORM框架
前言 在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?或者是你还有更好的ORM推荐呢? 如果有的话,不防也一起分享给大家。.NET(C#)主流ORM总揽 今天这篇文章分享几款收集的目前.NET(C#)中比较流行的ORM框架,比如(以下框架均为开源框架,托管于githu...转载 2018-05-03 17:44:18 · 4467 阅读 · 1 评论 -
ORM简介
什么是ORMORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。为什么用ORM在程序开发中,数据库保存的表,字段与程序中的实体类之间是没有关联的,在实现持久化时就比较不方便。那么,到底如何实现...转载 2018-05-03 17:41:45 · 154 阅读 · 0 评论 -
区分什么是架构、框架、模式和平台
区分什么是架构、框架、模式和平台?一直都感觉这几个词过于抽象和模糊,今天大家来说说到底什么是架构、框架、模式和平台?收集了的一些来自网上各自的定义和区分如下:来自冬眠的蛤蟆的概念: 设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用、框架是模块级复用、架构是系统级复用、平台是企业应用级复用。1、设计模式为什么要先说设计模式?因为设计模式在这些概...转载 2018-05-03 17:35:06 · 467 阅读 · 0 评论 -
父类引用指向子类对象,new和override的区别;
关于父类引用指向子类对象例如: 有以下2个类 public class Father { public int age = 70; public static string name = "父亲"; } public class Son : Father ...原创 2018-05-03 16:58:10 · 595 阅读 · 0 评论 -
C# 基础 (2) 堆与栈
一、值类型与引用类型的存储方式:引用类型:引用类型存储在堆中。类型实例化的时候,会在堆中开辟一部分空间存储类的实例。类对象的引用还是存储在栈中。值类型:值类型总是分配在它声明的地方,做为局部变量时,存储在栈上;类对象的字段时,则跟随此类存储在堆中。我们再看看引用类型和值类型的内存分配情况(我们对着代码与图看) 示列代码: 内存分布情况: 从上面两张图我们可以看出: 1)...转载 2018-05-16 21:38:20 · 324 阅读 · 0 评论