文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C#中标准Dispose模式的实现

  需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类:   托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;   非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;   毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继....

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,在C#中选择正确的集合进行编码

  要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。   集合分类   在上图中,可以看到,集合总体上分为线性集合和非线性集合。线性集合指元素具有唯一的前驱和后驱的数据结构类型。非线性集合是指具有多个前驱或后驱的数据结构类型,如:树、图。在FCL中,非线性集合实现的比较少,所以我们将会...

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C# 中奇妙的函数之ToLookup

  我将和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。   好的!先来看看ToLookup:   故事的背景   让我们先来创建一个简单的类来表示产品,产品有ID,类别,和价格,这个类没有什么特别:   p....

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C#中的语言特性都是从何而来?

  前几天推荐一个同事用“可选参数”,推荐完了我还画蛇添足的说这是.Net 4中的新特性。但是事后才发现这个新特性是C# 4.0的语言特性,与.Net 4无关。其实也不只这一次,我平时也经常把语言、框架、运行时,有时甚至还有开发工具混为一谈。于是今天就总结一下C#中我感兴趣的几个语言特性是从何而来的。   1.可选参数   可选参数是C# 4.0中的新特性,其作用在于在调用者不提供参数值时给参数....

一起谈.NET技术,C#中的语言特性都是从何而来?
文章 2019-06-01 来自:开发者社区

一起谈.NET技术,《Effective C#中文版:改善C#程序的50种方法》读书笔记

  从去年找工作以来,都没什么时间写博客[找工作的体会:建议以后有自己开公司的IT人一定要找IT专业人员做HR,好多公司的HR并不能真正发掘人才,他们形成了太多的偏见,如在学校期间学不了什么东西、只看学校有多少奖励等。真正钻研技术的人才不会追求虚无的东西],其实这本书我都借了好久,一直没有系统的看,所以趁这两天好好看看,顺便总结了一些要点,给那些需要这方面知识而又没有太多时间的IT人一个快速的学....

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C#中字符串的内存分配与驻留池

  刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下: String s1 = "Hello";String s2 = "Hello"; //s2和s1的实际值都是Hellobool same = (object) s1 == (objec...

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C# 中奇妙的函数--联接序列的五种简单方法

  今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类:   同类的联接   Concat()   Union()   不同类的联接   Zip()   Join()   GroupJoin()   Concat() – 串联序列   最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1. v...

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,C# 基础概念之延迟加载

  延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用等。针对于这种做法,似乎称之为即用即创建更为合适些。   先来看一下在Framework4.0中如何实现延迟加载。   Framework4.0提供了一个包装类 Lazy<T>...

一起谈.NET技术,C# 基础概念之延迟加载
文章 2019-06-01 来自:开发者社区

一起谈.NET技术,用c#实现Protocol Buffers的变长字节整形编码

  摘要   int在.net里固定占4个字节,如果我们存储和传输大量的int数据,并且大部分数的值比较小,我们就会浪费很多的网络流量和磁盘存储。Protocol Buffers对整数的编码是让值小的数占少量几个的字节,值大的数占多个字节。   编码算法   首先看如下链接,了解Protocol Buffers对整形的编码算法。http://code.google.com/intl/zh-CN/....

文章 2019-06-01 来自:开发者社区

一起谈.NET技术,浅谈思路严谨的用户在线状态控制【附部分C#参考代码】

  我们经常会遇到:   1:客户购买了5个用户的许可,10个用户的许可,软件需要限制用户的并发数量,我知道就是Oracle的并发用户达到20个以上,那费用是非常昂贵的。   2:一个用户只能登录一次或者是一个账号在同一时间只能登录一个,若已经是登录了就不让再登录了,需要能控制用户的并发登录问题。   3:有的系统也需要能实现在线用户列表、用户的登录状态等,特别是即时消息功能的内部管理系统等。 ....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。