随笔分类 - 02.FrameWork/C#
摘要:string[] arr1 = new[] { "1", "2", "3", "4", "5" }; string[] arr2 = new[] { "1", "3", "5" }; var sameArr = arr1.Intersect(arr2).ToArray(); //找出相同元素(即交集) var diffArr = arr1.Where(c => !arr2.Contains(c)).ToArray();//找出不同
阅读全文
摘要:下面这段代码整理自sl4的官方文档,已经加了详细的注释,相信大家都能看明白:using System;using System.Reflection;using System.Reflection.Emit;using System.Threading;namespace CustomAttributeBuilderSample{ public class DemoClass { static void Main(string[] args) { //得到新类型 Type myType = BuildTypeW...
阅读全文
摘要:记录这篇文章的灵感来源来自今天下班前与同事的小小争论,我现在开发的一个项目中,有这样一段代码:public string ToXML() { string strXml = string.Empty; try { MemoryStream ms = new MemoryStream(); XmlSerializer xml = new XmlSerializer(this.GetType()); xml.Serialize(m...
阅读全文
摘要:RDLC报表是微软自家的报表,已经集成在vs2010中,相对水晶报表更轻量级,更重要的是:可直接在web项目中使用。使用步骤:一、创建DataSet右击->Add New Item-> DataSet(本例中命名为DS_EMP),会出现以下界面:然后右击->Add->DataTable,添加一个表,命名为T_EMP,然后添加二个列EMPNO,EMPNAME均为String型,完成后的样子类似下现这样:注:如果机器上安装了BizTalk,DataSet打开后,可能是下面这样这种编辑方式我个人觉得不方便,可以通过在DS_EMP.xsd上右击-->Open With,然
阅读全文
摘要:注:此乃“流水帐”式的水文,营养成分较低,高手请自动无视以下内容,否则引起消化不良等症状等,一概不管 ^_^c#自从3.0开始,提供了很多便捷的语法特性(俗称“语法糖”),以简化程序员的工作量,同时也让编程变得更有乐趣,但是凡事有利必有弊。比如我们有一个类,希望能序列化成字符串后,以string方式在Silverlight与WCF(或其它后台编程技术)之间传输。using System.IO;using System.Text;using System.Xml.Serialization;namespace XmlClassSerelizer{ public class Person ...
阅读全文
摘要:做企业级应用,跟office打交道是少不了的。这里的Office不仅仅局限于微软的Office,还有第三方的Open Office之类。.Net传统的Office操作方法(比如OleDB,OWC之类),有几大缺点:一是不通用(仅能处理微软的Office,不能与其它非Windows平台交换数据),二是性能差(导出一个Excel,如果记录数上万条,速度很慢),三是服务器通常要安装Office Web Components(即OWC组件)。自从Open XML出现后,这种情况在很大程度上得到了改观,Open XML已经逐渐成为一种办公文档的通用国际标准了(该标准基于XML格式),详情见百度百科 ht
阅读全文
摘要:园子里有一篇 Log4Net使用指南写得很详细,推荐给准备使用log4net的同学看看。如果你不想花太多时间研究,也可以按下面的步骤在5分钟内搞定:1、添加对log4net.dll的引用2、修改配置文件,以app.config为例,参考内容如下:<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="log4net.Config.Log4
阅读全文
摘要:虽然flex跟.net交互的首选是FluorineFx,但是如果在某些特定情况下(比如服务端是现成的,不允许修改,或者服务端开发方不懂FluorineFx为何物),这时webService还是挺有用的。WebService完全可以用"以BasicHttpBinding方式运行的WCF"代替。经过我的实际测试:对于基本类型(比如int,string,datetime以及它们对应的arrry以list),flex调用时能正确识别并“翻译”成as3中对应的int,String,Date以及Array类型,而复杂类型(比如自己在c#中定义的实体类或DataTable),flex调用
阅读全文
摘要:1、ModuleLoader在Asp.Net开发中,经常会把页面的公共部分封装成自定义控件ascx,以达到重用或动态加载的目的。在Flex4中MXML Module能达到类似的功能,可以把某些功能单独封装成在一个Module,然后利用ModuleLoader动态加载。每个MXML Module在Build时,会生成一个同名的swf(比如A.mxml会生成A.swf),但是不能单独运行。然后在主界面的mxml中,利用ModuleLoader组件来加载,示例代码如下:<?xml version="1.0" encoding="utf-8"?>&l
阅读全文
摘要:c#4.0中的dynamic早已不是新闻了,虽然内部用反射机制,略微会有一些性能上的额外开销,但是有些特殊场景还是很有用的,二害相权,取其轻吧(也正是因为这些动态编程特性,Python,Ruby这类动态语言能更方便的融入到.net平台中)using System;using System.Collections.Generic;using System.Dynamic;namespace DynamicTest{ class Program { public static void Main(string[] args) { dynamic obj = new ExpandoObject();
阅读全文
摘要:不变/协变/逆变,4.0中的这几个概念越念越象绕口令,如果单纯死记硬背,就算记住了,时间长了还是会忘记的。园子里已经有不少高手撰文写过这个话题:比如“装配脑袋”的NET 4.0中的泛型协变和反变 (2008年他就已经搞明白了这个概念)、偶像Artech的“C# 4.0新特性-"协变"与"逆变"以及背后的编程思想” 以及1-2-3的 协变(Covariance)和逆变(Contravariance)的十万个为什么这里只是从应用的角度,简单记录一下:从.net3.5开始,System命名空间里就定义了一个泛型委托,原型如下:public delegate T
阅读全文
摘要:public struct Point { private int m_x, m_y; public Point(int x, int y) { m_x = x; m_y = y; } public override string ToString() { return string.Format("{0},{1}", m_x, m_y); } }上面是一个值类型的定义,下面创建一个实例,用在控制台上输出一些信息: Point p = new Point(1, 1); Console.WriteLine(p);这与 Point p = new Point(1, 1); Co
阅读全文
摘要:如题,在FluorineFx的实时视频交互应用中,如果页面长时间不动,可能会导致flash中的NetConnection对象断开连接,其原因我没有深入研究,不过应该能猜出大概(以下结论未必证实,不保证一定正确):FluorineFx是做为一个HttpModule而嵌入asp.net网站中的,如果长时间不动,页面与服务器之间的session过期可能会导致FluorineFx与客户端的连接也一并关闭。解决办法:在嵌入flash的页面中,随便用ajax定时(比如每5分钟)服务端随便发点数据过去(哪怕只是一个字符也行),以证明自己还活着。另外在使用中还发现一个现象:通常我习惯于把FluorineFx的
阅读全文
摘要:其实这也是面试中被问倒的问题:(贴在这里纪念一下,注:只是简单的罗列,详细原理及分析,请参阅《CLR Via c#》第三版相关章节)1、利用线程池发起异步操作using System;using System.Threading;namespace Asynchronous{ class Program { static void Main(string[] args) { Console.WriteLine("主线程:准备发起一系列异步操作..."); ThreadPool.QueueUserWorkItem(ComputeBoundOp, 5); ThreadPool.
阅读全文
摘要:msdn上有一篇讲解如何用vs2008调试源码的文章:http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx 今天在vs2010上试了下,发现其实也可以,关键设置二个地方:然后换到Symbols在Cache symbols in this directory这里选择一个本机目录(用于存放下载源代码pdb文件)ok,已经成功一半了,为了更方便的一次性全部下载,你也可以到codeplex网站下载一个NetMassDownLo
阅读全文
摘要:早上出门前看时间还早,反正出去等公交也是等,就捞起垫桌脚的一本书(C程序设计),随便翻了翻,看到下面这个方法,记录下来,说不定哪天就用到了:明白原理了吗?就是利用异或操作,从最后1,0异或操作的结算来看,异或操作有二个基本特性:1、满足交换律(即1^0和 0^1结果相同)2、相同为0,相异为1(即不同为1)所以来仔细看下:x = x ^ yy = y ^ x 相当于 y = y ^ (x ^ y)...
阅读全文
摘要:iPhone现在越来越火爆了,很多原本在PC上的互联网应用都纷纷推出了iPhone客户端(比如携程,新浪微博),iPhone的最佳开发环境是mac OS + iphone真机,一般情况下这个有点难满足。(想起一句网络经典语言:用钱能解决的问题都不是问题,问题是TM没钱)但是可以在windows环境(比如win7)中,通过虚拟机安装mac os来搭建环境,下面将讲解vmware下如何安装mac os 10.6(雪豹操作系统)。1、准备工作,先到网上down下面这些软件 a、 vmware7.1 (虚拟机软件) b、 darwin.iso 约24.8m (mac os系统的引导盘,没有这个无法进入
阅读全文
摘要:队列(Quene)的特征就是“先进先出”,队列把所有操作限制在"只能在线性结构的两端"进行,更具体一点:添加元素必须在线性表尾部进行,而删除元素只能在线性表头部进行。先抽象接口IQuene<T>下面是基于数组实现的示意图:实现思路:用一个数组存放所有元素,同时设置二个关键变量front与rear用于记录队列“头”与“尾&rdq...
阅读全文
摘要:堆栈(Stack)最明显的特征就是“先进后出”,本质上讲堆栈也是一种线性结构,符合线性结构的基本特点:即每个节点有且只有一个前驱节点和一个后续节点。相对前面学习过的顺序表、链表不同的地方在于:Stack把所有操作限制在"只能在线性结构的某一端"进行,而不能在中间插入或删除元素。下面是示意图:从示意图中可以看出,堆栈有二种实现方式:基于数组的顺序堆栈实现、类似链表的链式堆栈实...
阅读全文
摘要:这是数据结构C#版笔记--线性表(Data Structure)之单链表(LinkList)的继续,对于双向链接,节点上除了Next属性外,还要有Prev属性用来指向前一个节点,DbNode定义如下:双链表的插入操作要稍微复杂一点,示意图如下:同样对于删除操作,也要额外处理prev指向完整实现DbLinkList<T>:测试代码片段:当然从上面的测试代码中,似乎并不能看出双链表的优点,...
阅读全文