C#
王老欠儿
这个作者很懒,什么都没留下…
展开
-
使用Json.net序列化和反序列化自定义日期
在使用json.net序列化和反序列化DateTime类型数据的时候,经常会碰到一些麻烦。比如不同的接口需要的日期显示格式不同,对数据库中空值和日期最小值的处理。 先看下面的例子,需要序列化和反序列化的类如下 public class ArchiveModel { public long ArchiveId { get; set; } public原创 2016-06-06 16:15:37 · 1395 阅读 · 0 评论 -
C#中throw的用法_异常路径
C#中throw的用法_异常路径原创 2016-06-06 10:37:36 · 37571 阅读 · 3 评论 -
nhibernate使用sql查询
在使用NHibernate的时候,我们经常会发现需要使用sql语句来查询某些关系比较复杂的表,通常使用sql语句查询出的结果集需要转换成实体的集合形式,进行过滤和序列化展示等操作。Nhibernate已经为我们提供了非常方便的方法,示例如下: 首先我们需要一个实体类 假设A表中有字段A1,A2,A3,B表中有字段B1,B2,B3 public class ReportModel { pub原创 2016-06-06 16:30:28 · 1274 阅读 · 0 评论 -
.NET中C#堆VS栈:Part I
尽管在.NET framework中我们不必担心内存管理和垃圾回收(GC),但是我们仍然要关注内存管理和GC,以优化程序性能。并且,对内存管理的工作原理有一个基本的了解,可以帮助我们解释程序中变量的行为。这篇文章中,会带来堆和栈的基础知识,变量类型以及一些变量为什么是这样的。 当你的代码运行时,.NET framework有两个地方用于存储。如果你对它们还不熟悉,我会为你介绍堆和栈。堆和栈在执行...翻译 2018-08-06 14:41:52 · 245 阅读 · 0 评论 -
.NET中C#堆VS栈:Part II
在上一部分中覆盖了堆栈的基本功能以及程序执行中变量类型和引用类型的分配。也讲到了指针的基本概念。 参数 这是代码执行时发生的详细情况。在第一部分中也提到了函数被调用时发生的事情,接下来我们就深入到细节 当函数被调用时发生了什么: 在栈上为必要的函数信息分配内存(叫做栈帧),这包括调用地址(一个指针),主要是一个GOTO指令,当线程结束执行函数后知道应该返回到哪里继续执行。 函数参数被co...翻译 2018-08-08 11:10:10 · 129 阅读 · 0 评论 -
.NET中C#堆VS栈:Part III
所谓复制 为了更好的说明问题,我们来对比一下堆上的值类型与引用类型。首先看一下值类型,下面的类和结构体,有一个Dude类包含Name和两个shoe属性,一个CopyDude()方法用来创建新的Dude实例。 public struct Shoe{ public string Color; } public class Dude { public string Name; ...翻译 2018-08-08 11:27:57 · 115 阅读 · 0 评论 -
.NET中C#堆VS栈:Part IV
描述 让我们从GC的视角看一下这个问题。如果要可靠的找出垃圾,我们需要一个高效的方法。显然,我们需要决定哪些是垃圾,哪些不是。为了确定哪些需要保留,首先我们假设所有没有被使用的都是垃圾。设想一下我们有两个朋友:JIT和CLR,他们负责跟踪什么正在使用并且给出一个保存清单。我们称这份清单为根清单,因为我们使用它作为起始点。我们需要保存一个主清单用来描述我们想保留的东西都在哪。那些清单中保留的...翻译 2018-08-31 17:51:22 · 185 阅读 · 0 评论 -
使用.net core和docker现代化asp.net应用
写在前面 在很长的一段时间里,提起.net都会让我无比失望,这个体系就像一个垂垂老矣的老人,充满了腐朽的气息。不活跃的社区,过度的封装与简化,自成一体与互联网的格格不入。就像年轻人眼中上了年岁的程序猿一样,高傲又倔强,顽固的捍卫着自己构建好的世界;就像孩子们知道好好学习是很重要,可是他们仍然没有好好学习。 准备 一台linuxdocker环境,这不是本文的重点,所以不会单独提及,如果您还不...原创 2019-01-09 14:43:03 · 263 阅读 · 0 评论