
.net 基础知识
adagadadfafd
暂时不知道说什么,以后再慢慢补上
展开
-
C# 中的默认命名空间的范围 (LINQ to XML)
XML 树中表示的默认命名空间不在查询范围内。如果您的 XML 在默认命名空间内,仍须声明一个XNamespace 变量,并将该变量与本地名称组合在一起,生成一个限定名,在查询中使用。查询 XML 树时遇到的一个最常见问题是,如果 XML 树具有默认命名空间,开发人员在编写查询时,有时会将 XML 视为不在命名空间内。本主题的第一个示例集演示一种加载但是按不正确方式查询默认命名空间转载 2013-01-11 16:43:03 · 1267 阅读 · 0 评论 -
Hashtable的两种同步方法(C#)
多个线程同时对 Hashtable 进行添加或删除操作,可能会引起 Hashtable 的错误,所以对它进行同步是必不可少的。同步的方法都有哪些呢? 1、使用 Hashtable.Synchronized 同步 Hashtable ht = new Hashtable(); ht = Hashtable.Synchronized(ht); 或者一步实现:转载 2012-05-03 09:59:51 · 3702 阅读 · 0 评论 -
不要迷失在技术的海洋中
技术就好像一片汪洋大海,越深入越望不到边际。就拿自己的体验来说吧,2000年的时候在学校搞ASP,觉得网页开发就是这么简单,把数据库中的数据格式化一下显示在页面上,把用户的输入组装成添加删除和修改的SQL提交到数据库中去。几年后的今天,我对自己了解或听说过的ASP.NET相关(注意:仅仅是ASP.NET或者说网站制作相关)技术列了一下: 在这些语言、技术、工具、理念中,每转载 2012-04-06 08:07:41 · 703 阅读 · 1 评论 -
Net性能优化总结
NET性能优化方面的总结 1. C#语言方面 1.1 垃圾回收 垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。 1.1.1 避免不必要的对象创建 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。 1.1.1.1 避免转载 2012-03-01 13:46:23 · 613 阅读 · 0 评论 -
.NET中lock的使用方法及注意事项
lock就是把一段代码定义为临界区,所谓临界区就是同一时刻只能有一个线程来操作临界区的代码,当一个线程位于代码的临界区时,另一个线程不能进入临界区,如果试图进入临界区,则只能一直等待(即被阻止),直到已经进入临界区的线程访问完毕,并释放锁旗标。其基本使用方式如下:[c-sharp] view plaincopyclass Test转载 2012-02-20 11:02:06 · 782 阅读 · 0 评论 -
DataSet读取XML字串
DataSet dataSet = new DataSet(); string xmlData = "Value1Value2"; System.IO.StringReader reader =转载 2011-10-08 09:27:33 · 885 阅读 · 0 评论 -
在vs2010开发环境,rdlc如何添加参数
VS2010开发环境选择rdlc报表—>视图->报表数据(列表最后一个)在报表数据左列,右键“参数”->添加参数 即OK!原创 2011-09-28 15:43:22 · 2415 阅读 · 1 评论 -
多线程(1)——从生活中理解什么是多线程
原文地址:http://blog.youkuaiyun.com/yhc0322/article/details/6801074 每一个程序可以包含至少一个线程,而多个线程之间可以“并发”执行。 在介绍线程前先来用生活中最常见的一个小例子来理解什么是线程转载 2011-09-26 09:41:47 · 511 阅读 · 0 评论 -
利用DebuggerDisplay特性得到更好的Debug体验
这个特性太碉堡了,很像WPF中的数据绑定,当然本质就是VisualStudio在调试时利用反射获取对象的值。构造函数中的属性值(就是{}中的内容)不仅仅可以是简单的属性值。还可以是索引器,而且这一切可以嵌套。(DebuggerDisplay特性(DebuggerDisplayAttribute类型)在System.Diagnostics命名空间内)来定义一个有DebuggerDispl转载 2012-05-04 17:29:54 · 1696 阅读 · 0 评论 -
C#委托——哪里用得着?
初学.Net的同学们,我们常常会有这样一种感觉,对于一项技术,或者一个方法,我们都知道它很有用,可就是用不着,或者说,并不知道什么地方能用的上,所以,技术学会了,却用不上,也就无法深入。时间一长,就容易忘,结果就是,这个我学过,那个我也懂,可是我就不会用。。。 这博客园的第一篇博文,就从C#委托开始吧。 前段时间,做了一个局域网通讯工具的项目,在其中涉及到修改个人资料的模块上,转载 2012-05-16 15:05:29 · 913 阅读 · 0 评论 -
NUnit的测试方法与VS中启用它来调试
在VS中加入单元测试框架:右键项目“属性“来到“调试”启动操作,选择“启动外部程序”选择NUnit程序C:\Program Files\NUnit 2.5.9\bin\net-2.0\nunit.exe这样就可以在生成的时候,自动启用NUnit进行调试 Not a Test AssemblyThe assembly was not built with any k转载 2012-05-16 17:02:29 · 2988 阅读 · 0 评论 -
.NET中六个你必须知道的重要概念之堆栈(stack)和堆(heap)
当你声明一个变量时内存中都发生了什么? 当你在一个.Net应用程序中声明一个变量时,首先要分配一些内存块到RAM,它包括三样东西,第一个是变量名,第二个是变量的数据类型,最后一个是变量的值。 这只是一个很简单的解释,根据变量的数据类型不同,有两种内存分配类型:堆栈内存和堆内存。图2 声明变量后的内存结构 堆栈(stack)和堆(heap) 为了帮转载 2012-11-28 22:13:37 · 2643 阅读 · 0 评论 -
你必须知道的25个C#基础概念
1.静态变量和非静态变量的区别? 静态变量:静态变量使用 static 修饰符进行声明 ,在所属类被装载时创建,通过类进行访问,所属类的所有实例的同一静态变量都是同一个值。非静态变量:不带有static 修饰符声明的变量称做非静态变量,在类被实例化时创建,通过对象进行访问,同一个类的不同实例的同一非静态变量可以是不同的值。2.const 和 static readonly转载 2012-11-28 21:57:25 · 621 阅读 · 0 评论 -
.NET中六个你必须知道的重要概念之装箱(boxing)和拆箱(unboxing)
说了这么多,在实际编程时怎么使用它们呢?最大的问题是要弄清楚数据从堆栈移到堆的性能损失,反之亦然。 如下图所示,当我们将一个值类型移到引用类型时,数据也从堆栈移到堆中,当我们将引用类型移到值类型时,数据就从堆移到堆栈中。数据从堆栈移到堆,或是从堆移到堆栈,都会产生较大的性能损失。数据从值类型移到引用类型的过程叫做装箱,从引用类型移到值类型叫做拆箱。图 8 装箱和拆箱过程示意转载 2012-11-28 22:43:19 · 788 阅读 · 0 评论 -
.NET中六个你必须知道的重要概念之值类型和引用类型
很多人现在可能要问为什么要设置两种内存分配形式呢?难道就不能用一种内存分配形式完成内存分配吗? 如果你仔细观察上图,你就会知道int变量是分配在堆栈上的,因为编译器已经知道它们可以存储多少数据(-2,147,483,648到2,147,483,647),涉及到对象时,编译器不知道需要多少内部空间,因此在堆上分配相同大小的空间。 换句话说就是,如果不知道数据大小或是动态变化的,就转载 2012-11-28 22:23:59 · 759 阅读 · 0 评论 -
NET Framework 4 中的并行编程9---线程安全集合类
在.Net 4中,新增System.Collections.Concurrent 命名空间中提供多个线程安全集合类,这些类提供了很多有用的方法用于访问集合中的元素,从而可以避免使用传统的锁(lock)机制等方式来处理并发访问集合.因此当有多个线程并发访问集合时,应首先考虑使用这些类代替 System.Collections 和 System.Collections.Generic 命名空间中的对应转载 2012-10-19 10:08:19 · 682 阅读 · 0 评论 -
传统编程和.net plinq
原创 2012-02-17 11:37:16 · 603 阅读 · 0 评论 -
IIS7配置Gzip压缩
在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的。如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内容压缩”和“动态内容压缩”两个选项,勾上即可。配置启用压缩的文件类型及其他选项当开启GZip压缩之后,IIS并不是对所有内容都启用了压缩,而是有选择的进行压缩。遗憾的是,我们无法直接在IIS7管理器中配转载 2012-07-30 11:09:23 · 869 阅读 · 0 评论 -
ASP.NET服务端GZIP压缩
ASP.NET服务端GZIP压缩模块的作用及工作原理,很多人编写网页的时候页面因为使用了大量的JS特效又或者放置很多大型动态广告导致了页面或脚本体积庞大,通常都会使用一些压缩工具本地对页面或脚本进行一定的压缩后再上传到服务器,但这样的压缩工具一般压缩率有限,优化自然也不明显,本文章介绍的压缩模块的作用就是对asp.net的页面或脚本等资源进行高强度GZIP压缩(一般能压缩到只有1/5的体积),而且转载 2012-07-30 10:04:50 · 808 阅读 · 0 评论 -
asp.net下Response.ContentType类型汇总
在ASP.NET中使用Response.ContentType="类型名";来确定输出格式 'ez' => 'application/andrew-inset', 'hqx' => 'application/mac-binhex40', 'cpt' => 'appli转载 2011-08-29 19:15:54 · 664 阅读 · 0 评论 -
C#多线程详解(三)
继续上一节的问题:调换两个新创建的线程启动顺序会是什么结果?using System;using System.Threading;namespace Test{ class TestThread { privat转载 2011-08-29 14:25:37 · 485 阅读 · 0 评论 -
C#多线程详解(二)
在上一节介绍了线程的基础知识,下面来研究多线程的优先级using System;using System.Threading;namespace Test{ class TestThread { private s转载 2011-08-29 14:25:08 · 886 阅读 · 0 评论 -
.Net集合类的研究-有序集合(二)-SortedDictionary<TKey,TValue>
从类名就可以看出SortedDictionary和上篇介绍的SortedList一样,都是有序集合,但从类内部的存储结构上看,两者有很大区别,SortedList内部用数组保存,只能算是有序线性表,而SortedDictionary的内部结构是红黑树。园子里有不少关于红黑树的好文转载 2011-07-21 10:41:38 · 773 阅读 · 0 评论 -
.net集合类的研究-哈希表(一)--Hashtable,Dictionary<TKey,TValue>
今天来探究哈希表,.net内置的哈希表容器是Hashtable类,而Dictionary是对应的泛型哈希表.哈希表-Hashtable的实例化一般我们实例化ArrayList或List的时候,如果不指定容量,则其内部是赋值为一个静态的空数组。当有添加操作时,会实例化为一个长度为4转载 2011-07-21 10:34:36 · 885 阅读 · 0 评论 -
.net集合类的研究--链表—ListDictionary,LinkedList<T>
链表是数据结构中存储数据的一种形式,我们经常使用的List,ArrayList,Hashtable等容器类,存取操作时是用数组Array来保存,ListDictionary和LinkedList不用Array,而是用链表的形式来保存。链表的优点和缺点以ListDictionary转载 2011-07-21 10:39:06 · 783 阅读 · 0 评论 -
C#反射机制
<br /><br />反射的概述: <br /> 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。<br /> System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 <br /><br />System.Reflection.Assembly <br />System.Reflection转载 2011-05-18 13:56:00 · 537 阅读 · 0 评论 -
枚举(enum)的常用操作
<br /><br />定义一个枚举用作后面的例子<br />enum EnumName{<br /> Red = 1,<br /> Green,<br /> Blue = 4,<br /> White = 8,<br /> Black = 16<br />}<br /> <br />枚举与符号、值的转换<br />EnumName en = EnumName.Green;<br />//1.枚举转值<br />int enValueInt = (int)en; // e转载 2011-05-16 13:04:00 · 1301 阅读 · 0 评论 -
什么是.NET的程序集?
<br /><br /> 程序集是 .NET 框架应用程序的主要构造块。它是一个功能集合,并以单个实现单元(一个或多个文件)的形式生成、版本化和部署。所有托管类型和资源或者只在其实现单元中标记为可访问,或者在该单元外由代码标记为可访问。<br />程序集通过其清单(每个程序集不可缺少的部分)进行自我描述。<br /><br /> 建立程序集标识(以文本名称的形式)、版本、区域性和数字签名(如果程序集将在应用程序间共享)。<br />定义组成程序集实现的文件(按名称和文件散列)。<br />指定组成程序转载 2011-05-16 11:42:00 · 1270 阅读 · 0 评论 -
Lambda表达式使用说明
http://msdn.microsoft.com/zh-cn/library/bb397687.aspx Lambda 表达式(C# 编程指南)转载 2011-03-22 13:22:00 · 668 阅读 · 0 评论 -
.Net Lambda
<br />http://msdn.microsoft.com/zh-cn/library/bb397687.aspx Lambda 表达式(C# 编程指南)转载 2011-03-22 13:16:00 · 472 阅读 · 0 评论 -
SQL Server 2005 数据类型和.Net数据类型的对应关系
SQL Server 2005 数据类型.NET Framework 数据类型LINQ 数据类型bigintSystem.Int64longbinarySystem.Byte[]System.Data.Linq.BinarybitSystem.BooleanboolcharSys转载 2011-07-21 11:02:36 · 542 阅读 · 0 评论 -
提高反射的调用性能
都说Reflection的性能相当差,但是非用不可的时候也得用,下面是提高反射效率的一个办法。 要被反射调用的类都实现一个接口,调用的那个类引用这个接口,将反射得来的类都转换为这个接口,然后直接调用,没有必要所有的方法都反射。 公用的接口代码: namespace CommonI转载 2011-07-27 16:23:21 · 632 阅读 · 0 评论 -
.net IL 指令速查
名称说明Add将两个值相加并将结果推送到计算堆栈上。Add.Ovf将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。Add.Ovf.Un将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。And计算两个值的按位“与”并将结果推送到计算堆栈上。Arglist返转载 2011-07-28 14:25:45 · 791 阅读 · 0 评论 -
.NET中的三种Timer的区别和用法
最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器。所以正好研究研究。这3个定时器分别是: //1.实现按用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。 System.Windows.Fo转载 2011-08-29 11:30:05 · 527 阅读 · 0 评论 -
C#多线程详解(一) Thread.Join()的详解
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可转载 2011-08-29 14:24:34 · 2312 阅读 · 0 评论 -
C#中 Const 、readonly、static 之间的差别和关系
static 修饰的变量意味着它属于类级别,不需要实例化就可以直接通过 类名.变量名 来用。const 默认是 static 类型,因此属于类级别,它的特点是在编译的时候用const修饰的变量的值就已经是明确知道的定值,而不能是一个计算表达式。而且,只能在声明的时候给转载 2011-08-29 11:59:28 · 573 阅读 · 0 评论 -
.Net事件与委托
原文地址: http://space.itpub.net/14325734/viewspace-450242【简介】在前述的博文中我们总是提到事件和委托,而Windows编程决离不开"事件",现在当使用.Net编程时"委托"又是必不可少的。在这里我们对事件和委托做一个总结转载 2011-09-20 11:36:46 · 525 阅读 · 0 评论 -
Delegates and Events in C# / .NET
ContentOverviewDelegatesCall a Function directly - No DelegateThe very basic DelegateCalling Static FunctionsCalling Member转载 2011-09-20 16:50:03 · 760 阅读 · 0 评论 -
.Net集合类的研究-有序集合(一)-SortedList、SortedList<TKey,TValue>
无论是常用的List、Hashtable还是ListDictionary,在保存值的时候都是无序的,而今天要介绍的集合类SortedList和SortedList在保存值的时候是有序保存。SortedList之二分查找法一个集合有序,意味着什么?意味着可以利用一些算法来提高遍历集转载 2011-07-21 10:40:20 · 848 阅读 · 0 评论 -
.net集合类的研究--哈希表(二)--HashSet<T>
.Net3.5之后出现了HashSet,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet和Dictionary使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary和Hashtabl转载 2011-07-21 10:37:23 · 941 阅读 · 0 评论