随笔分类 -  C#

摘要:谈谈.net对象生命周期 不用程序员操心的堆 — 托管堆 程序在计算机上跑着,就难免会占用内存资源来存储在程序运行过程中的数据,我们按照内存资源的存取方式将内存划分为堆内存和栈内存。 栈内存,通常使用的场景是:对存取速度要求较高且数据量不大。 典型的栈内存使用的例子就是函数栈,每一个函数被调用时都会 阅读全文
posted @ 2020-05-25 22:50 清晨时光 阅读(415) 评论(0) 推荐(0)
摘要:转自https://www.cnblogs.com/lemontea/p/3159282.html C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解。还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 阅读全文
posted @ 2019-12-08 19:15 清晨时光 阅读(449) 评论(0) 推荐(0)
摘要:转自https://www.cnblogs.com/yaosj/p/10342883.html 目录 简介: 一.Task的创建 1.创建Task类 2.Task.Factory.StartNew 3.Task.Run 4.TaskStatus 二. TaskCreationOptions 1. L 阅读全文
posted @ 2019-11-23 11:46 清晨时光 阅读(580) 评论(0) 推荐(1)
摘要:使用 Newtonsoft.Json,可以很方便的将字符串反反序列化成对象。 如下,resourceJson为json格式字符串,使用一行代码即可转成对象。 不过也可以直接读json的某个节点的值,不过不推荐,直接将json对象序列号成对象才是最通用的做法。 阅读全文
posted @ 2018-12-27 21:59 清晨时光 阅读(622) 评论(0) 推荐(0)
摘要:拼接筛选条件 通过ProductType和Language分组,得到分组后的对象列表 阅读全文
posted @ 2018-12-13 23:03 清晨时光 阅读(443) 评论(0) 推荐(0)
摘要:let设置临时条件 阅读全文
posted @ 2018-10-29 17:33 清晨时光 阅读(2831) 评论(0) 推荐(0)
摘要:线程安全指的是 多个线程并行执行某段代码会使代码的执行结果无法控制。一般造成线程安全的原因都是多个线程对全局变量或者静态变量进行了读写操作。比如单例模式中的经典模式就存在线程安全问题。可以使用线程同步方式解决线程安全问题,如使用锁。 线程同步相关可以参考https://www.cnblogs.com 阅读全文
posted @ 2018-07-29 12:01 清晨时光 阅读(544) 评论(0) 推荐(0)
摘要:用了很久的多线程了,今天记录下多线程的常用方法。 当创建一个线程时,就会消耗几百毫秒cpu,创建一些新的私有局部变量栈。每个线程还消耗(默认)约1 MB的内存。线程池通过共享和回收线程,允许在不影响性能的情况下启用多线程。每个.NET程序都有一个线程池,线程池维护着一定数量的工作线程,这些线程等待着 阅读全文
posted @ 2018-07-29 11:37 清晨时光 阅读(173) 评论(0) 推荐(0)
摘要:转自https://www.cnblogs.com/qixuejia/p/4383068.html msdn 解释如下: “协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型。 “逆变”则是指能够使用派生程度更小的类型。 解释的很正确,大致就是这样,不过不够直白。 直白的理解: “协变” 阅读全文
posted @ 2018-07-29 11:26 清晨时光 阅读(179) 评论(0) 推荐(0)
摘要:strSql = "select * from t_jcj_CJD"; loacalDt = DbService.Instance.QueryLoacal(strSql); UpLoacaTable("CJDBH", "T_JCJ_CJD", loacalDt, null); /// ... 阅读全文
posted @ 2018-07-06 20:00 清晨时光 阅读(250) 评论(0) 推荐(0)
摘要:如示例代码,buf带描述标记 被调用到的方法 阅读全文
posted @ 2018-07-06 19:41 清晨时光 阅读(205) 评论(0) 推荐(0)
摘要:.net 预定义了两个委托EventHandler如下。 因此,在编写代码时可以直接使用这两个委托来声明事件,如下: 例子 阅读全文
posted @ 2018-06-17 17:13 清晨时光 阅读(421) 评论(0) 推荐(0)
摘要:有时候没有使用orm框架,手工编写或者代码生成器生成的带参数的insert语句时,比如 初看这个代码没有任何问题,参数都有绑定,但是执行的时候却报错了,错误大概意思是部分参数没有绑定数据,怎么会出现这样的情况? 因为这个例子中对象的DSP和XP以及INSERTTIME都是非必填项,问题就出在这了,有 阅读全文
posted @ 2018-05-04 17:06 清晨时光 阅读(274) 评论(0) 推荐(0)
摘要:一个类继承了某个抽象类表示它“是什么”,实现了某个接口表示它“有什么功能”或者“会做什么事”。比如:燕子(具体类)是鸟(抽象类),会飞(接口)。C#中不支持多继承,即燕子只能是鸟,不会是其他东西了;但可以有多个功能,做很多事,比如会飞(IFly),会吃(IEat)。 阅读全文
posted @ 2018-04-19 21:27 清晨时光 阅读(148) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/GoodHelper/tag/Spring.NET/default.html?page=2 阅读全文
posted @ 2018-04-18 22:42 清晨时光 阅读(198) 评论(0) 推荐(0)
摘要:一、AOP概念 老规矩,还是先看官方解释:AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。OOP是关注将需求功能划分 阅读全文
posted @ 2018-04-05 16:56 清晨时光 阅读(1678) 评论(0) 推荐(0)
摘要:转自 https://www.cnblogs.com/liqingwen/p/5832322.html 目录 LINQ 简介 介绍 LINQ 查询 LINQ 基本查询操作 使用 LINQ 进行数据转换 LINQ 查询操作的类型关系 LINQ 中的查询语法和方法语法 LINQ 简介 语言集成查询 (L 阅读全文
posted @ 2018-03-20 16:32 清晨时光 阅读(128) 评论(0) 推荐(0)
摘要:1、当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它。 2、一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因 阅读全文
posted @ 2018-02-27 11:59 清晨时光 阅读(1622) 评论(0) 推荐(0)
摘要:编写winform客户端程序中使用TCP通信时,可以当独写一个通信类来进行处理通信。 主界面初始化 阅读全文
posted @ 2017-08-18 16:02 清晨时光 阅读(7762) 评论(0) 推荐(0)
摘要:winform经常用到TCP通信,使用TCP通信协议的好处大家都知道,数据传送可靠,不会丢失,也就是不会丢包。但是使用TCP协议接收数据比有点麻烦,数据会粘包。为了保证数据正常的解析,这里使用最大众的解决方法,在发送的数据包前面定义一个2个字节长度的包头,根据包头可以知道后续数据的长度。具体做法是发 阅读全文
posted @ 2017-08-18 15:33 清晨时光 阅读(4373) 评论(0) 推荐(0)