跟小D每日学口语

02 2012 档案

摘要:一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。现在用一个用线程控制的进程条来说明,大致的步骤如下:1.创建Invoke函数,大致如下:///<summary>///Delegate function to be invoked by main thread///</summary>privatevoidInvokeFun(){if( prgBa 阅读全文
posted @ 2012-02-29 13:25 Danny Chen 阅读(193) 评论(0) 推荐(0) 编辑
摘要:开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内容:1. BeginInvoke和EndInvoke方法2. Thread类3. 线程池4. 线程同步基础5. 死锁6. 线程同步的7种方法7. 如何在线程中访问GUI组件一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含 阅读全文
posted @ 2012-02-29 13:08 Danny Chen 阅读(225) 评论(0) 推荐(0) 编辑
摘要:以前都没怎么注意两者的区别(我甚至都不知道“&”),因为它们都是“与”运算符。我昨天看C#高编第三版的时候,才注意到这点,查了下MSDN,把区别贴出来,时时提醒自己。二元运算符 (&) 为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。条件“与”运算符 (&&) 执行布尔操作数的逻辑“与”运算,但如有必要,只计算第二个操作数。它与二元运算符 (&)很像,不同的是,如果 x 阅读全文
posted @ 2012-02-29 11:05 Danny Chen 阅读(530) 评论(0) 推荐(0) 编辑
摘要:概述C#开源的DICOM server.支持影像处理、影像归档、影像管理、影像传输和影像浏览功能。开源代码可学习地方很多。官方网站:http://www.clearcanvas.cabuilding ImageViewer 的代码,1、打开ImageViewer.sln 在 /Trunk/ImageViewer 用VS2008编译它.2、运行ClearCanvas.Desktop.Executable Bin\debug 或Bin\Release下的项目.编译通过ImageServer.sln 在 /Trunk/ImageServer修改 connectionStrings在ImageServ 阅读全文
posted @ 2012-02-29 00:04 Danny Chen 阅读(5613) 评论(1) 推荐(0) 编辑
摘要:概要DICOM是Digital Imaging and Communications in Medicine的英文缩写,即医学数字成像和通信标准。是ACR(American College of Radiology,美国放射学会)和NEMA(National Electrical Manufactorers Association,国家电子制造商协会)为主制定的用于数字化医学影像传送、显示与存储的标准。在DICOM标准中详细定义了影像及其相关信息的组 成格式和交换方法,利用这个标准,人们可以在影像设备上建立一个接口来完成影像数据的输入/输出工作。DICOM标准以计算机网络的工业化标准为基础,它 阅读全文
posted @ 2012-02-29 00:02 Danny Chen 阅读(1258) 评论(0) 推荐(0) 编辑
摘要:C# 代码publicclassPerson{publicString Name {set;get; }publicintAge {set;get; }publicString Url {set;get; }}protectedvoidPage_Load(objectsender, EventArgs e){//Dictionary 的简写形式Dictionary<int, String>dict=newDictionary<int,string>() { {1,"A"}, {2,"BB"} };foreach(KeyValueP 阅读全文
posted @ 2012-02-28 10:55 Danny Chen 阅读(727) 评论(0) 推荐(0) 编辑
摘要:1.NameValueCollection类集合是基于 NameObjectCollectionBase 类。但与 NameObjectCollectionBase 不同,该类在一个键下存储多个字符串值(就是键相同,值就连接起来如下例子)。该类可用于标头、查询字符串和窗体数据。每个元素都是一个键/值对。NameValueCollection 的容量是 NameValueCollection 可以保存的元素数。NameValueCollection 的默认初始容量为零。随着向 NameValueCollection 中添加元素,容量通过重新分配按需自动增加。如下例子:NameValueColle 阅读全文
posted @ 2012-02-28 10:53 Danny Chen 阅读(217) 评论(0) 推荐(0) 编辑
摘要://获取程序的基目录。System.AppDomain.CurrentDomain.BaseDirectory//获取模块的完整路径。System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName//获取和设置当前目录(该进程从中启动的目录)的完全限定目录。System.Environment.CurrentDirectory//获取应用程序的当前工作目录。System.IO.Directory.GetCurrentDirectory()//获取和设置包括该应用程序的目录的名称。System.AppDomain.Curren 阅读全文
posted @ 2012-02-28 09:58 Danny Chen 阅读(154) 评论(0) 推荐(0) 编辑
摘要:// 链表类class LL{publicstring value;publicLL link; // used for outputingthe linkdatapublicvoid OutPut() { Console.Write(value); if (link != null) { Console.Write(","); link.OutPut(); } }}逆序:privateLL Revert(LL t){ LL newList = null; while (t != null) { LL mid = new LL(); mid.value = t.value; 阅读全文
posted @ 2012-02-27 12:29 Danny Chen 阅读(524) 评论(0) 推荐(0) 编辑
摘要:上篇文章(深入浅出三层架构)分析了简单三层架构的实现。包括Model,DAL(数据访问层),BLL(业务逻辑层)的实现。实际开发中,由于重复代码的操作,会花费大量时间,如果以代码生成器来自动生成三层架构代码,即节省精力,又可以节省大量的时间来做其他业务逻辑的代码,提高开发效率。常用的代码生成器有:动软,CodeSmith 等。简单代码生成器的基本功能描述:一键生成Model,DAL,BLL,包括对应数据库中表的Model的自动生成,包括生成属性、添加、修改、删除、查询。界面展示:生成器开发技术要点:查询系统视图:INFORMATION_SCHEMA.TABLES、INFORMATION_SCH 阅读全文
posted @ 2012-02-26 20:53 Danny Chen 阅读(4776) 评论(3) 推荐(1) 编辑
摘要:range.NumberFormatLocal ="@";//设置单元格格式为文本range = (Range)worksheet.get_Range("A1","E1");//获取Excel多个单元格区域:本例做为Excel表头range.Merge(0);//单元格合并动作worksheet.Cells[1,1] ="Excel单元格赋值";//Excel单元格赋值range.Font.Size =15;//设置字体大小range.Font.Underline=true;//设置字体是否有下划线range.Fo 阅读全文
posted @ 2012-02-24 14:12 Danny Chen 阅读(669) 评论(0) 推荐(0) 编辑
摘要:1、全表自动列宽 mysheet.Cells.Select(); mysheet.Cells.Columns.AutoFit();2、合并 excelRangeParm.Merge(Missing.Value); 3、粗体设置 excelRangeParm.Font.Bold = true; 4、字体大小设置 excelRangeParm.Font.Size = 12; 5、水平对齐设置 excelRangeParm.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; 6、垂直对齐设置 excelRangeParm.Vertic... 阅读全文
posted @ 2012-02-24 00:32 Danny Chen 阅读(10425) 评论(0) 推荐(2) 编辑
摘要:XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件。 “在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允 阅读全文
posted @ 2012-02-23 16:24 Danny Chen 阅读(2620) 评论(0) 推荐(2) 编辑
摘要:本文转自<<飞雪飘寒>>原文地址http://www.cnblogs.com/dreamof/archive/2008/08/14/1268096.html#commentform。一、简单介绍using System.Xml;//初始化一个xml实例XmlDocument xml=new XmlDocument();//导入指定xml文件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));//指定一个节点XmlNode root=xm 阅读全文
posted @ 2012-02-23 16:21 Danny Chen 阅读(244) 评论(0) 推荐(0) 编辑
摘要:最近剛好幫同事解決這個問題~把解決方式提出來講一下~因為CheckedBoxList.Items.Add的時候他新增的是一個object~所以往往不知道要怎麼加入他的Value~此時可以先寫一個Class~來實做這個Item,見以下範例 public class myItem { String m_Text=""; String m_Value=""; public myItem(String Text) { m_Text = Text; } public myItem(String Text, String Value) { m_Text = Text 阅读全文
posted @ 2012-02-16 14:34 Danny Chen 阅读(522) 评论(0) 推荐(0) 编辑
摘要:有时我们知道了两个DataTable1和DataTable2,我们希望将它们合并为一个新的DataTable(下面的例子中命名为了newDataTable),这就分为两种情况:DataTable1和DataTable2结构相同、DataTable1和DataTable2结构不同,下面分别介绍怎么进行合并。一、DataTable1和DataTable2结构相同的情况,结构相同我们只需要把两者的数据罗列到一块就可以了首先初始化相同结构DataTable(测试用的) void InitDataTable1(DataTable dt) { dt.Col... 阅读全文
posted @ 2012-02-16 14:28 Danny Chen 阅读(581) 评论(0) 推荐(0) 编辑
摘要:C#遍历ComboBox的内容:一:for (int i = 0; i < comboBox1.Items.Count; i++){ MessageBox.Show(comboBox1.GetItemText(comboBox1.Items[i]));}复制代码二:foreach (System.Data.DataRowView dr in comboBox1.Items){ string id = dr["student_id"].ToString(); string nane = dr["student_name"].ToString();}/ 阅读全文
posted @ 2012-02-16 14:22 Danny Chen 阅读(195) 评论(0) 推荐(0) 编辑
摘要:checklistbox控件1.添加项checkedListBox1.Items.Add("蓝色");checkedListBox1.Items.Add("红色");checkedListBox1.Items.Add("黄色");2. 判断第i项是否选中,选中为true,否则为falseif(checkedListBox1.GetItemChecked(i)){ return true;}else{ return false;}3. 设置第i项是否选中checkedListBox1.SetItemChecked(i, true); / 阅读全文
posted @ 2012-02-16 13:55 Danny Chen 阅读(406) 评论(0) 推荐(0) 编辑
摘要:1.使用CheckedListBox1.Items.Add循环方式 赋值: foreach (DataRow dr in ds.Tables[0].Rows) { checkedListBox1.Items.Add(dr["Name"]); } 选中索引: foreach (int indexChecked in checkedListBox1.CheckedIndices) { MessageBox.Show("Index#: " + indexChecked.ToString()); } 选中值: foreach (object itemChecke 阅读全文
posted @ 2012-02-16 13:53 Danny Chen 阅读(247) 评论(0) 推荐(0) 编辑
摘要:View Code 1 /// <summary> 2 /// 3 /// </summary> 4 public enum DRErrorMessage 5 { 6 German = 5, 7 Czech = 6, 8 Danish = 7, 9 Greek = 8,10 Spanish = 9,11 Finnish = 10,12 French = 11,13 Hungarian = 12,14 Italian = 13,15 Japanese = 14,16 Korean = 15,17 Dutch = 16,18 Norwegian = 17,19 Polish 阅读全文
posted @ 2012-02-15 17:17 Danny Chen 阅读(208) 评论(0) 推荐(0) 编辑
摘要:Attribute的基本概念经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考。在具体的演示之前,我想先大致介绍一下Attribute。我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么它们到底是不是同一个东西呢?从代码上看,明显不同,首先就是它们的在代码中的位置不同,其次就是写法不同(Attribute必须写在一对方括符中)。什么是Atrribute首先,我 阅读全文
posted @ 2012-02-13 13:20 Danny Chen 阅读(1313) 评论(1) 推荐(0) 编辑
摘要:表示键/值对的集合,这些键和值按键排序并可按照键和索引访问。SortedList最合适对一列健/值对进行排序,在排序时,是对键进行排序,SortedList是Hashtable和Array的混合。当使用Item索引器属性按照元素的键访问元素时,其行为类似于Hashtable。当使用GetByIndex或SetByIndex按照元素的索引访问元素时,其行为类似于Array。SortedList在内部维护两个数组以将数组存储到列表中;即,一个数组用于键,另一个数组用于相关联的值。每个元素都是一个可作为DictionaryEntry对象进行访问的键/值对。键不能为空引用(VisualBasic中为N 阅读全文
posted @ 2012-02-13 10:23 Danny Chen 阅读(244) 评论(0) 推荐(0) 编辑
摘要:C#程序中的Dispose方法,一旦被调用了该方法的对象,虽然还没有垃圾回收,但实际上已经不能再使用了。所以使用上要仔细考虑细节。AD:需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类:托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继承接口IDisposable。这相当于是告诉调用者,该类型是需要显式释放资源的,你需要调 阅读全文
posted @ 2012-02-12 18:48 Danny Chen 阅读(331) 评论(0) 推荐(0) 编辑
摘要:1.1.1定义 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示: //Code in C# public delegate int PerformCalculation(int x, int y); 与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。 简单理解Delegate委托(或代理)是一种数据类型:它的变量可以引用到某一个符合要求的方法上,通过委托可以间接地调用该方法。 其实.NET的委托类似于C语言的函数指针,区别在于.NET委托是类型安全的,这说... 阅读全文
posted @ 2012-02-12 15:00 Danny Chen 阅读(217) 评论(0) 推荐(0) 编辑
摘要:1.1.1 摘要图1 C# 泛型介绍 在接触泛型之前,我们编程一般都是使用具体类型(char, int, string等)或自定义类型来定义我们变量,如果我们有一个功能很强的接口,而且我们想把它提取或重构成一个通用的接口,使得该接口不仅仅适用于已定义数据类型,而是适用于更多数据类型,从而方便以后的扩展。 泛型提供上述功能的实现,泛型其实就是提供一个数据类型的抽象层,因为它泛所以抽象,方便了我们代码的重构和提取,我们无需hard-code接口中的数据类型,而是通过一个抽象泛型类型来指定数据类型,所以泛型可以提取出一个通用的接口。接下来让我们通过具体的例子说明什么是泛型。1.1.2 正文1.1.1 阅读全文
posted @ 2012-02-11 23:09 Danny Chen 阅读(236) 评论(0) 推荐(0) 编辑
摘要:前两篇文章讲解了一些关于单元测试的基本理论知识,接下来我们应该理论联系实践,在实践中体会单元测试带给我们的便利! 环境:VS2008,2010版本! 关于怎么在VS中创建单元测试,园子里已经有很多这样的文章了,请参考以下链接: http://www.cnblogs.com/heqichang/archive/2011/09/30/2196779.html http://www.cnblogs.com/TerryFeng/archive/2009/05/24/1488333.html http://www.cnblogs.com/zhijianliutang/archi... 阅读全文
posted @ 2012-02-11 16:08 Danny Chen 阅读(267) 评论(0) 推荐(0) 编辑
摘要:前言关于每日构建这个话题,也已经有很多很好的文章讨论了。本文的写作过程中也参考了这些文章。本文之所以继续这个题目,是因为在查阅了网上的资源后,发现没有一个比较通用的过程。所以本文就主要讨论了利用NAnt构建一个通用日编译的方案。利用这个方案,日编译的维护者可以不需要对每个要编译的方案都要做很多维护。只要定义一个属性文件就可以了。关键词: Daily Build, NAnt1.简介1.1.每日构建的优点:每日构建(Daily Build)也可称为持续集成(Continuous Integration),强调完全自动化的、可重复的创建过程,其中包括每天运行多次的自动化测试。每日构建的作用日益显得重 阅读全文
posted @ 2012-02-10 12:03 Danny Chen 阅读(372) 评论(0) 推荐(0) 编辑
摘要:摘自:MSDNThe situation is similar to personal secrets (shared only with friends), family secrets (shared with friends and children), and nonsecrets (shared with anybody), respectively.A Partial:It is possible to split the definition of a class or a struct, or an interface over two or more source files 阅读全文
posted @ 2012-02-07 13:40 Danny Chen 阅读(542) 评论(0) 推荐(0) 编辑
摘要:在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译,这种部署方式非常麻烦。在.net中提供了一种便捷的保存项目配置信息的办法,那就是利用配置文件,配置文件的文件后缀一般是.config,在asp.net中配置文件名一般默认是web.config。每个web.config文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中。在发布Web应用程序时web.config文件并不编译进dll文件中。如果将来客户端发生了变化 阅读全文
posted @ 2012-02-02 10:38 Danny Chen 阅读(217) 评论(0) 推荐(0) 编辑
摘要:有经验的开发人员都知道在开发.NET应用时可以利用配置文件保存一些常用并且有可能变化的信息,例如日志文件的保存路径、数据库连接信息等等,这样即使生产环境中的参数信息与开发环境不一致也只需要更改配置文件而不用改动源代码再重新编译,极其方便。并且我们一般还约定,在<appSettings>节点保存应用程序的配置信息,在<connectionStrings>中保存数据库连接字符串信息(详见本博客《asp.net夜话之十一:web.config详解》)。上面的这些方法和约定足以让我们在大部分开发中获得方便,但是在有些情况下有些配置信息可以按组分类存放,如果采用上面的方法不仅不直 阅读全文
posted @ 2012-02-02 10:37 Danny Chen 阅读(290) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示