随笔分类 - 概念理解
摘要:原文地址:http://jm-blog.aliapp.com/?p=934一个公司大了,总有部分人要去做一些通用的东西给大家用,我这里说的基础产品就是这类通用性质的东西,不一定高科技,但是一定很多人依赖你的东西来完成各种各样的功能。做这样的东西,有些体会可以说下。首先,能集中存储的,就不要分布存储,...
阅读全文
摘要:译自Eric Lippert's Blog, 原文:http://blogs.msdn.com/ericlippert/archive/2009/08/27/what-s-the-difference-between-fixed-and-fixed.aspx 某天我收到一封这样开头的邮件: 我有一个关于C# 固定大小的缓冲区的问题: unsafe struct FixedBuffer { publ...
阅读全文
摘要:译自Eric Lippert's Blog, 原文:http://blogs.msdn.com/ericlippert/archive/2009/08/03/what-s-the-difference-part-two-scope-vs-declaration-space-vs-lifetime.aspx 在编程语言设计中,作用域(scope)通常是最容易混淆的概念。 人们似乎不经意间就使用这个概...
阅读全文
摘要:译自Eric Lippert's Blog, 原文:http://blogs.msdn.com/ericlippert/archive/2009/07/30/generics-are-not-templates.aspx因为我不是常人, 所以我喜欢去了解容易混淆的东西间的微妙差别: 我的脑袋里还是非常地不明白集线器,路由器和交换机之间的区别,并且也不明白他们怎么在里面联系起来的。 找到的大块的矿石...
阅读全文
摘要:1、应用层:OSI模型的应用层是用户与计算机进行实际通信的地方。只是当马上就要访问网络时,才会实际上用上这一层2、表示层:表示层因它的用途而得名:它为应用层提供数据,并负责数据转换和代码的格式化。从本质上来说,这一层是翻译器,并提供编码和转换功能。3、会话层:会话层负责建立,管理和终止表示层实体之间的会话连接,这一层也在设备或结点之间提供会话控制,它在系统之间协调通信过程,并提供三种不同的方式来组...
阅读全文
摘要:总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据类型相对确定的化 用Dictiona...
阅读全文
摘要:Code Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->命名空间: System 程序集: System.Core(在 System.Core.dll 中) 语法 Visual Basic(声明) Public Delegate F...
阅读全文
摘要:C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。 什么情况下使用分部类? – 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理(相当于支持并行处理,很实用); – 使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。Visual Studio 在创建Windows 窗...
阅读全文
摘要:ThreadStatic 1:使用这个属性修饰的static Member是一个线程一份而不是整个进程中一份 2:对于threadstatic变量,不要给初值。因为初值只会初始化一次。而多个线程中的多个值就不一定是哪个被初始化。但是可以依赖该类型的默认值。
阅读全文
摘要:事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往 又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让 开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。 先来看看事件编程有哪些好处。 在以往我们编写这类程序中,往往采用等待机制,为了等...
阅读全文
摘要:元数据attribute主要分为两大类: 设计期attribute 解析期attribute 设计期attribute 设计期attribute对于控件在可视化设计器(如.NET 2003)内正确运行是很重要的,设计器、属性浏览器和其他的设计期元素使用设计期attribute提供的元数据的作用如下: 显示属性和事件 执行设计期的...
阅读全文
摘要:约定: 1.”attribute”和”attributes”均不翻译 2.”property”译为“属性” 3.msdn中的原句不翻译 4.”program entity”译为”语言元素” Attributes in C# 介绍 Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如 帮助文件,文档的URL),还...
阅读全文
摘要:很多人对Volatile都不太了解,其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上来讲每次使用a的时候都应该从a的地址来读取变量值,但是这存在一个效率问题,就是每次使用a都要去内存中取变量值,然后再通过系统总线传到CPU处理,这样开销...
阅读全文
摘要:.Net编程中最经常用的元素,事件必然是其中之一。无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。“protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都是带了“object sender, EventArgs e”这...
阅读全文
摘要:1:Params 1 public static void UseParams(params object[] list) 2 { 3 for (int i = 0; i < list.Length; i++) 4 { 5 Console.WriteLine(list[i]); 6 } 7 } 8 9 static void Main...
阅读全文
摘要:.net中对象的序列化是指将对象的状态存储起来,先将对象的字段和属性以及类名转换为字节流,然后再把字节流写入数据流。通过对对象反序列化,得到原对象完全相同的副本。对象的序列化主要的目的是将对象持久化,经过持久化的对象可以从一个地方传输到另一个地方。在.net中, IFormatter接口提供了对象序列化的功能。他有两个公有的方法:反序列化对象方法Deserialize : Deserialize...
阅读全文
摘要:1、什么是ArrayListArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素实现了ICollection和IList接口灵活的设置数组的大小2、如何使用ArrayList最简单的例子:ArrayList List = new ArrayList();for( int i=0;i<10;i++ ) //给数组增加10个...
阅读全文
摘要:概述 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类型于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型,并且对这些新类型的操作进行调用。 一些在反射中经常使用的类 Assembly类 Assembly类是可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。可以使用Assembly.Loa...
阅读全文