文章分类 - C#
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){IList<LYZX.Model.LYZX_NewsTypeMod...
阅读全文
摘要:前几天与同事激烈讨论了一下,有一点收获,记录起来。首先给出MSDN的定义:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。先来看看执行过程,代码示例如下: 假设线程A先执行,线程B稍微慢一点。线程A执行到lock语句,判断obj是否已申请了互斥锁,判断依据是逐个与已存在的锁进行object.ReferenceEquals比较(...
阅读全文
摘要:TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事务。使用之前必须添加对 System.Transactions.dll 的引用。 下列代码就是一个正在创建的事务,这个事务自身还封装了多个数据库查询。只要任意一个 SqlCommand 对象引...
阅读全文
摘要:C#中的委托,匿名方法和Lambda表达式简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆。我想下面的代码能证实这点。下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个First不仅被编译,并都获得正确答案,且他们的结果一样。如果你对此感到困惑,那么请继续看这篇文章。view sourceprint?01class Custom...
阅读全文
摘要:引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最后介绍值类型和引用类型,并说明一些有关它们的重要原理。 最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。声明变量的内部机制 在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块内存分为三部分:1,变量名...
阅读全文
摘要:在.NET Framework 中,经常使用XML 作为存储和传输各种数据的格式。DataSet 中的数据可以转换成XML 的形式来表示和存储。我们可以使用XML 对象同步和转换DataSet 的数据,而DataSet 也可以存储和传输XML 格式的数据。 XML 与 DataSet 的关系如下图所示:DataSet 对象的常用方法如下:A. 使用ReadXml( ) 方法:从文件或流中加载XML...
阅读全文
摘要:C# 3.0 新功能隐式类型的本地变量和数组对象初始化设定项集合初始化设定项自动实现的属性匿名类型一:隐式类型的本地变量和数组交错数组:每个元素都是由数组组成.[代码]代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--string[]words={...
阅读全文
摘要:枚举是在写程序的过程中经常会遇到的类型。对于Enum,.Net提供了很多使用的方法: 1.Parse:将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 (MSDN) Parse方法是经常会用到的一个方法,它有两个重载形式: public static Object Parse( Type enumType, string value ) public static Objec...
阅读全文
摘要:Func和Action是两个泛型委托,为什么说他们有用呢?是由于这两个自带的委托在很多时候可以省去我们自定义委托的工作。 1.Func 该委托有5个重载形式,区别仅在于他所指向的方法的签名的参数个数,分别如下:Func<TResult>Func<T,TResult>Func<T1,T2,TResult>unc<T1,T2,T3,TResult>Fu...
阅读全文
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--//获取本周的周一02.publicstringGetThisWeekMonday()03.{04.DateTimedate=DateTime.Now;05.DateTimefirst=System....
阅读全文
摘要:关于这个论题,Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考。C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别。.NET 中的委托确实和C/C++的函数指针非常相似。它是一个值类型,它包装了一个指向方法的引用。它的作用也是为了能够将方法和变量一样作为参数传递。委托的典型应用是控件的事件处理方法。很显然,一...
阅读全文
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.IO;usingSystem.Reflection;u...
阅读全文
摘要:生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\...\xxx.DLL 若要调试此模块,请将其项目生成配置更改为“调试”模式。总结网上讨论:1. <compilation debug="true"/> 2.右击“解...
阅读全文
摘要:1. 引言 attribute是.net框架引入的有一技术亮点,因此我们有必要花点时间走进一个发现attribute登堂入室的入口。因为.NET Framework中使用了大量的定制特性来完成代码约定,[Serializable]、[Flags]、[DllImport]、[AttributeUsage]这些的构造,相信我们都见过吧,那么你是否了解其背后的技术。 提起特性,由于高级语言发展的历...
阅读全文
摘要:初级的,很简单,牛人可以不看了。不过还算实用。在项目中经常需要处理表单,给model赋值,很烦人的一些重复代码。如下边的代码:[代码]经常还会出现写错情况,尤其是加班写这种无聊代码的时候...使用反射,泛型,静态方法可以很容易解决这个问题。说的好像有点高深,其实超级简单。见代码。代码Code highlighting produced by Actipro CodeHighlighter (fre...
阅读全文
摘要:今天在浏览博文时,看到这篇文章:C#中的ref 传进出的到底是什么 ? 在传对象时使用ref的疑问另附言:[代码]一直我们都知道,引用类型就传的就是地址,值类型传的就是值,可是还仍有那么多人迷惑,网上虽然流传着很多ref 的相关文章,似乎都没为大伙解下惑。最近有人在看我 CYQ.Data 框架的时候说起,既然class是引用地址,本身传的就是地址,你代码中还要写ref传递来干什么;原来以前明白的,...
阅读全文
摘要:在《谈谈你最熟悉的System.DateTime》一文中,我们从跨时区的角度剖析了我们熟悉的System.DateTime类型。如果你还是采用传统的ADO.NET编程方式,并使用DataSet作为数据实体,可能你会熟悉System.Data.DataSetDateTime这么一个类型。这个类型也是为实现跨时区场景下对时间处理而设计的,为了对前文的补充,这篇文章就来谈谈基于DataSet的时间处理问...
阅读全文
摘要:UTC是coordinated universal time的简称,即协调世界时GMT才是格林威治标准时间,即Greenwich Mean Time.格林威治标准时间已经不再被作为标准时间使用。现在的标准时间——协调世界时(UTC)——由原子钟提供。最近一直在负责公司内部框架的升级工作,今天对一个小问题进行了重新思考——时间的...
阅读全文
摘要:这篇文章讲述如何自定义你的调试窗体。这些技巧在你调试应用程序的时候是非常有用的。当你调试的时候,你可能希望简化调试窗体的信息,或者在调试窗体上除去对你不重要的不必要的信息,这篇文章将会帮助到你。本文翻译:Few Tips on Customizing Debugging Window View in Visual Studio 。 使用DebuggerBrowsable特性可以自定义调试窗体。使...
阅读全文
摘要:静态方法代理:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--publicdelegatevoidDoGreeting(stringname);classProgram{[STAThread]staticvoidMain(string[]args)...
阅读全文