随笔分类 -  C#

单件模式(Singleton Pattern)[转]
摘要:单件模式(Singleton Pattern)——.NET设计模式系列之二Terrylee,2005年12月07日概述Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职 阅读全文

posted @ 2011-12-05 14:37 kingang 阅读(293) 评论(0) 推荐(0)

我的WCF之旅(1):创建一个简单的WCF程序[转]
摘要:为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。对那些对WCF不是很了解的读者来说,这个例子将带领你正式进入WCF的世界。在这个例子中,我们将实现一个简单的计算服务(CalculatorService),提供基本的加、减、乘、除的运算。和传统的分布式通信框架一样,WCF本质上提供一个跨进程、跨机器以致跨网络的服务调用。在本例中,客户端和服务通过运行在相同的同一台机器上不同进程模拟,图1体现了客户端和服务端进程互相调用的关系。图1 计算服务应用运行环境WCF的服务不能孤立地存在,需要寄宿 阅读全文

posted @ 2011-11-10 16:04 kingang 阅读(213) 评论(0) 推荐(0)

日期正则表达式[转]
摘要:1 概述首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写出的正则也不同,复杂程度也自然不同。正则的书写需要根据具体情况具体分析,一个基本原则就是:只写合适的,不写复杂的。对于日期提取,只要能与非日期区分开,写最简单的正则即可,如\d{4}-\d{2}-\d{2}如果可以在源字符串中唯一 阅读全文

posted @ 2011-11-09 11:59 kingang 阅读(563) 评论(0) 推荐(0)

C# winform 窗体定义功能快捷键[转]
摘要:这里的快捷键并非系统全局快捷键。仅是普通的当窗体在焦点内是发生。有很多种方法,这里列举几种项目中使用到的方法。1.Alt+*(一般控件快捷键) 这个比较简单,只需为该控件的Text属性声明时加上”(&A)”,”(&D)” 之类的标识,例如一个Button按钮的Text属性为:this.btnOK.Text=”确定(&A)”;2.Ctrl+*(组合键) 当在某个窗体上按下一个组合键时发生。常用的如:打印(Ctrl+P),保存(Ctrl+S)…等等。 首先需设置窗体的KeyPreview(确定窗体上控件的键盘事件是否已向窗体注册)属性设置为True 然后只需在窗体的KeyD 阅读全文

posted @ 2011-10-06 22:25 kingang 阅读(296) 评论(0) 推荐(0)

解决---错误:该行已经属于另一个表
摘要:我遇到的错误 // Addvdq_has_tcckhRow(row1);此处错误,改为如下:dS.vdq.Rows.Add(row1.ItemArray); dS.vdq.AcceptChanges();bds.MoveLast();参考网络资料:DataTable dt = new DataTable(); dt = ds.Tables["All"].Clone();//把All的结构传递给dt DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); for(int 阅读全文

posted @ 2011-09-22 10:58 kingang 阅读(218) 评论(0) 推荐(0)

C#获得代码文件的行号,文件名,函数名
摘要://行号private static int GetLineNum(){System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true); return st.GetFrame(0).GetFileLineNumber();}//文件名private static string GetFileName(){System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true);return st.GetFrame(0).G 阅读全文

posted @ 2011-09-20 15:42 kingang 阅读(995) 评论(0) 推荐(0)

virtual 关键字[C#]
摘要:virtual(C# 参考)virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。 例如,此方法可被任何继承它的类重写。public virtual double Area() { return x * y;}public virtual double Area() { return x * y;}虚拟成员的实现可由派生类中的 重写成员更改。 有关如何使用 virtual 关键字的更多信息,请参见 使用 Override 和 New 关键字进行版本控制(C# 编程指南)和 了解何时使用 Override 和 New 关键字(C# 编程指南)。备注调用虚... 阅读全文

posted @ 2011-09-07 16:36 kingang 阅读(445) 评论(0) 推荐(0)

??运算符[C#]
摘要:??运算符?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。备注可以为 null 的类型可以包含值,或者可以是未定义的。?? 运算符定义当可以为 null 的类型分配给非可以为 null 的类型时返回的默认值。 如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。 如果使用强制转换,且当前还未定义可以为 null 值的类型,则会引发 InvalidOperationException 异常。有关更多信息, 阅读全文

posted @ 2011-09-07 11:02 kingang 阅读(303) 评论(0) 推荐(0)

Linq To DataTable结合Dictionary,List实例讲解[转]
摘要:一、遍历DataTable已存在一个DataTable,其中字段名为ID(int),Name(string),Company(string),CreatedDate(DateTime)对应此表的class为:public class ClientStruct{ public string ID { get; set;}; public string Name {get; set;}; public string Company { get; set;}; public string CreatedDate { get; set;}; }遍历DataTable,取出所有的IDList<s. 阅读全文

posted @ 2011-09-07 09:40 kingang 阅读(3428) 评论(0) 推荐(0)

NPOI 插入行[转]
摘要:虽然NPOI中没有提示现有的插入行函数,但我们可以写一个类似效果的函数:这里用到了NPOI中自带的ShiftRows函数,该函数功能:对指定行移动操作 public void ShiftRows(int startRow, int endRow, int n); public void ShiftRows(int startRow, int endRow, int n, bool copyRowHeight, bool resetOriginalRowHeight); public void ShiftRows(int startRow, int endRow, int n, bool cop 阅读全文

posted @ 2011-08-31 21:03 kingang 阅读(15029) 评论(0) 推荐(3)

LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 [转]
摘要:在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() 。例如:string strcon = "Data Source=.\\SQLEXPRESS;Initial Catalog=Db_Example;Persist Security Info=True;User ID=sa;Password=sa";SqlConnection con = new SqlConnection(strcon);con.Open();string strsql = "select * from SC,Course where SC.Cno 阅读全文

posted @ 2011-08-29 17:12 kingang 阅读(332) 评论(0) 推荐(0)

Linq查询DataTable,DataRow
摘要:static void Main() { string strcon = global::TestLinqToSQL.Properties.Settings.Default.testConnectionString; SqlConnection conn = new SqlConnection(strcon); SqlDataAdapter da = new SqlDataAdapter("select * from T_Teacher", strcon); DataTable dt = new DataTable(); da.Fill(dt); ... 阅读全文

posted @ 2011-08-29 17:06 kingang 阅读(677) 评论(0) 推荐(0)

C# 异常处理[转]
摘要:异常处理结构开发软件一定要有足够的风险意识,认识到商业软件在各种复杂的情况下运行,必然会出现各种各样的风险和错误,这些风险和错误需要进行处理。无视风险和错误,假设一切都很和谐是很危险的思想。主动处理错误程序开发中可以主动处理错误和被动处理错误,主动处理错误就是进行写代码进行功能执行前的检查,最常见也是最有效的手段就是在方法体开头处检查方法参数是否正确。主动检查程序运行速度快,而且系统更稳定,而且将风险消灭在萌芽之中,避免后期的错误大爆发,因此是优先采用的风险处理方式。[袁永福版权所有]例如下面的代码就是主动处理错误。public int Div( int a , int b ){ // 检查参 阅读全文

posted @ 2011-08-25 22:40 kingang 阅读(995) 评论(0) 推荐(1)

Delegate与Event的区别[转]
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Delegate_vs_Event { class Program { public delegate string TestDelegate(string input); public static TestDelegate myDelegate; public static event TestDelegate myEvent; static void Main(string[] args) { // 阅读全文

posted @ 2011-08-25 10:15 kingang 阅读(320) 评论(0) 推荐(0)

C# 关键字--using用法[转]
摘要:using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 (二).作为语句,用于定义一个范围,在此范围的末尾将释放对象。using指令 ①允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用: using System.Text; using PC.Company; ②为命名空间或类型创建别名。 using MyCompany = PC.Company; //命名空间的别名。 using Project = PC.Company.Project; //类型的别名 using引入命名空间,并不等于编译器编译时加载该命名空间所 阅读全文

posted @ 2011-08-25 10:04 kingang 阅读(291) 评论(0) 推荐(0)

Handle unmanaged code in managed c# with the help of using statement
摘要:http://stackoverflow.com/questions/3433197/what-exactly-are-unmanaged-resourcesManaged resources basically means "managed memory" that is managed by the garbage collector. When you no longer have any references to a managed object (which uses managed memory), the garbage collector will (ev 阅读全文

posted @ 2011-08-25 10:03 kingang 阅读(182) 评论(0) 推荐(0)

为什么要关闭数据库连接,可以不关闭吗? [转]
摘要:首先要说明的是连接数是有限制的:代码如下:for (int i = 0; i < 10000; i++){ SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=""E:\DB\NORTHWND.mdf""; Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); Console.WriteLine("打. 阅读全文

posted @ 2011-08-23 11:11 kingang 阅读(190) 评论(0) 推荐(0)

Session,有没有必要使用它?[转]
摘要:今天来说说 Session 。这个东西嘛,我想每个Asp.net开发人员都知道它,尤其是初学Asp.net时,肯定也用过它,因为用它保存会话数据确实非常简单。与前二篇博客不同,这次我不打算细说它的使用,而是打算说说它的缺点,同时我还会举个实际的例子,来看看它到底有什么不好的影响。当然了,光批评是没有意义,事情也得解决,没有会话也不行,所以,本文将也给出一个自认为能替代Session的解决方案。Session的来龙去脉当我们新建一个网站时,VS20XX 生成的网站模板代码中,Session就是打开。是的,如果你没有关闭它,Session其实是一直在工作着。 您只需要在Page中用一行代码就能判断 阅读全文

posted @ 2011-08-23 10:27 kingang 阅读(194) 评论(0) 推荐(0)

c# textbox中光标所在行命令及选中命令移动到最后一行且光标提前[转]
摘要:1privatevoidMoveCmdToLast(TextBoxtxtCmdInput,StringselCmd)//把所选中的命令移动到最下一行然后显示在文本框中2{3StringtxtStr=txtCmdInput.Text;4intstart=txtStr.IndexOf(selCmd);56//把选中行或光标所在行的命令送到最后一行且光标移到第一行7if(selCmd!=null&&selCmd.Length>0&&selCmd!="\r\n")8{9StringstrLeft=txtStr.Remove(start,selC 阅读全文

posted @ 2011-08-21 10:10 kingang 阅读(1345) 评论(0) 推荐(0)

C#DateTime函数[转]
摘要:1、DateTime 数字型System.DateTime currentTime=new System.DateTime();1.1 取当前年月日时分秒currentTime=System.DateTime.Now;1.2 取当前年int 年=currentTime.Year;1.3 取当前月int 月=currentTime.Month;1.4 取当前日int 日=currentTime.Day;1.5 取当前时int 时=currentTime.Hour;1.6 取当前分int 分=currentTime.Minute;1.7 取当前秒int 秒=currentTime.Second;1 阅读全文

posted @ 2011-08-17 20:57 kingang 阅读(472) 评论(0) 推荐(0)

导航