随笔分类 - CSharp Technical
CSharp Technical
摘要:【按:有关于NUnit的详细介绍请见:《NUnit2.0详细使用方法 》http://confach.cnblogs.com/archive/2005/06/20/177817.aspx本文是个人心得和简要总结】一、本文摘要:●什么单元测试●什么是NUnit●NUnit的下载以及安装●NUnit的启动●NUnit的最简单使用●验证设计的功能是否实现●SetUp/TearDown 属性●TestFixtureSetUp/TestFixtureTearDown●Category属性●Explicit属性●输出二、什么单元测试单元测试,就是局部测试,对于web应用程序或者Windows应用程序来说,
阅读全文
摘要:1、查询Student表中的所有记录的Sname、Ssex和Class列。select sname,ssex,class from studentLinq:from s in Students select new { s.SNAME, s.SSEX, s.CLASS }Lambda: Students.Select( s => new { SNAME = s.SNAME,SSEX = s.SSEX,CLASS = s.CLASS })2、查询教师所有的单位即不重复的Depart列。select distinct depart from teacherLinq:from t in Tea
阅读全文
摘要:什么是Build Action? Build Action is how the file relates to the build and deployment processes.在Visual Studio 2010的Windows Phone工程中, 有多个build action。它们之间有什么区别呢?*None: 此文件不参与编译也不被输出。比如:工程中的文档文件, readme.txt。*Compile: 参与编译并输出。主要是代码文件。*Content: 不参与编译,但会被输出。*Embedded Resource: 此文件被嵌入到主工程生成的DLL或exe中。主要是资源文件。
阅读全文
摘要:最近在做Unit Test相关的东西,发现对某个类添加了私有方法访问器(accessor)之后,编译就会出现问题,在其他人的环境中都正常,貌似只是我自己环境的问题,很郁闷。在网上找了很长时间也没有找到原因及相关的解释。后来决定自己分析错误,终于找到了解决方案,希望遇到同样问题的人可以得到一些提示。先从错误信息入手,在程序的引用集找不到相关的引用,那就去csproj文件看一下,发现引用的Project好好的在那,没有什么问题;然后又打开accessor文件,看到里面有Desktop,但是感觉没有什么关系,所以没有详细研究;接着发现accessor文件的属性很少,其中两个属性引起了我的注意——Bu
阅读全文
摘要:C# where子句where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类MyGenericClass,这样,类型参数T就可以实现 IComparable<T> 接口:publicclassMyGenericClass<T>where T:IComparable { }2.基类约束:指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型类型的类型参数。这样的约束一经使用,就必须出现在该类型参数的所有其他约束之前。classMyClassy<T, U>where T :class
阅读全文
摘要:小弟刚刚走上工作岗位不久,工作中常常遇到要导出Excel的情况,但感觉两种常见的导出方式(一种是通过GridView,另一种是通过微软的COM组件)都不是很理想,前者导出的灵活度太低,后者又常常出现进程无法回收,所以一直想找个.net平台的第三方Excel组件,于是就在网上找到了EPPlus。 EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,官网为:http://epplus.codeplex.com/。唯一的遗憾是我在网上没有找到有关这个组件的中文资料,我一直不清楚为什么,难道这个组件有什么大缺陷?还是目前还没在
阅读全文
摘要:抽象工厂模式(Abstract Factory Pattern)引入:在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂模式、工厂方法模式的意图、所能解决的问题及适用情景有一定的了解了。但是若要达到灵活运用,什么时候用,怎样用合适还不是看一篇文章就能解决的问题。呵呵..这需要你对OO的理解程度,你的项目开发经验等等许多方面的积累。一起努力喔。。好了,咱们言归正传,通过对这两个模式的了解,我们掌握一种思想,就是在创建一个对象时,需要把容易发生变化的地方给封装起来,来控制变化
阅读全文
摘要:工厂方法模式(Factory Method Pattern)介绍:在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式。它解决的仍然是软件设计中与创建对象有关的问题。它可以更好的处理客户的需求变化。引入我们继续来说"new"的问题,我们在简单工厂模式中,将实例化对象的工作推迟到了专门负责创建对象的工厂类中,这样,在我们事先预知的情况下,可以根据我们的需要动态创建产品类。但是,我们的预知是有限的,客户的变化可能是无限的。所以,就出现了问题,一旦客户的变化超越了我们的预知,我们就必须修改我们的源代码了。这是设计模式所不允许
阅读全文
摘要:昨天参加面试,遇到一个关于new修饰符的题,由于本人不慎,给搞错了,纠其原因,还是因为我的C#基础知识不牢固,关于override与new的区别平时没有太注意。在此,为大家分享一下:代码如下:publicclassbaseClass{publicbaseClass(){Method1();}publicvirtualvoidMethod1(){Console.WriteLine("Method1inbaseClass");}}publicclassderivedClass:baseClass{privateintvalue;publicderivedClass(){valu
阅读全文
摘要:抽象工厂设计模式Client Invokeprotected void btnAbstract_Click(object sender, EventArgs e) { AbstractRoadFactory roadfactory ; roadfactory = new RoadFactory1(); client c1 ; c1 = new client(roadfactory); lblMessage.Text += c1.Run() + "--"; roadfactory = new RoadFactory2(); c1 = new client(roadfactor
阅读全文
摘要:做的一些项目都比较小,而且时间紧,有好多东西都没来得急总结,趁这会还有点时间把前面项目中的用到的知识点分享下,只为以后方便使用。功能:用脚本取CheckBoxList中的值,并用"|"将其分开,之后将取到的值放入文本框,返回数据库做添加或者修改前台页面代码<!--关键字--> <div id="keyWordsDiv" style="border: 2px solid #6FA1D9; display: none; position: absolute; top: 0px; left: 0px; width: 260px; h
阅读全文
摘要:delegate是C#中的一种类型,C# event的处理实际上是一种具有特殊签名的delegate,本文就介绍了C# delegate和C# event。AD:在基于Windows平台的程序设计中,事件(event)是一个很重要的概念。因为在几乎所有的Windows应用程序中,都会涉及大量的异步调用,比如响应点击按钮、处理Windows系统消息等,这些异步调用都需要通过事件的方式来完成。即使在下一代开发平台——.NET中也不例外。那么什么是事件呢?所谓事件,就是由某个对象发出的消息,这个消息标志着某个特定的行为发生了,或者某个特定的条件成立了。比如用户点击了鼠标、socket上有数据到达等。
阅读全文
摘要:简单的测试了一下IE前进和后退的过程.依次访问网站A,B,C,D.后退至 B,然后重新请求网站E,则记录的保存顺序则是 A,B,EC,D将会从记录列表中删除.下面看代码(以下操作均在内存中进行):一个History对象,用来生成一个记录对象,该对象包含 url,title,html三个属性.classHistory{privatestringTitle_="";privatestringWmlSource_="";privatestringUrl_="";publicstringTitle{get{returnTitle_;}set{
阅读全文
摘要:using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// DListNode 的摘要说明 /// </summary> pub
阅读全文
摘要:在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序,所以没有加锁的必要,但是在多线程中,为了保持数据的同步,一定要加锁,好在Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、Lock关键字和Mutex类。其中Lock关键词用法比较简单,Monitor类和Lock的用法差不多。这两个都是锁定数据或是锁定被调用的函数。而Mutex则多用于锁定多线程间的同步调用。简单的说,Monitor和Lock多用于锁定被调用端,而Mutex则多用锁定调用端。例如下面程序:由于这种程序都是毫秒级的,所以运行下
阅读全文
摘要:.NET 基础类库的System.Threading命名空间提供了大量的类和接口支持多线程。这个命名空间有很多的类。System.Threading.Thread类是创建并控制线程,设置其优先级并获取其状态最为常用的类。他有很多的方法,在这里我们将就比较常用和重要的方法做一下介绍:Thread.Start():启动线程的执行; Thread.Suspend():挂起线程,或者如果线程已挂起,则不起作用; Thread.Resume():继续已挂起的线程; Thread.Interrupt():中止处于 Wait或者Sleep或者Join 线程状态的线程; Thread.Join():阻塞调用线
阅读全文
摘要:/// <summary> /// 1+2+3+....+n的递归算法 /// </summary> /// <param name="i"></param> /// <returns></returns> public static int Process1(int i) { //计算1+2+3+4+...+100的值 if (i == 0) return 1; if (i == 1) return 1; return Process1(i - 2) + Process1(i - 1); } ///
阅读全文
摘要:目录基础篇怎样创建一个线程受托管的线程与 Windows线程前台线程与后台线程名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联WinForm多线程编程篇我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决?Invoke,BeginInvoke干什么用的,内部是怎么实现的每个线程都有消息队列吗?为什么Winform不允许跨线程修改UI线程控件的值有没有什么办法可以简化WinForm多线程的开发线程池线程池的作用是什么?所有进程使用一个共享的线程池,还是每个进程使用独立的线程池?为什么不要手动线程池设置最大值?.Net线程池
阅读全文
摘要:引用彩色鱼 & 软件开发 的 几种绑定DropdownList的方法第一种,把Array数组绑到dropdownlist程序代码 string[] Month =new string[7]{ "January", "February", "March", "April", "May", "June", "July" }; this.DropDownList1.DataSource = Month; this.DropDownList1.DataBi
阅读全文
摘要:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;namespaceWuJian.Common{/// <summary>/// 图片处理类/// 吴剑 2008-07-02 创建/// 吴剑 2011-01-21 修改/// </summary>publicclassPTImage{#region 正方型裁剪并缩放
阅读全文

浙公网安备 33010602011771号