C#
文章平均质量分 85
zhoukk1985
这个作者很懒,什么都没留下…
展开
-
绑定树结点的示例
下面是题目: 已知表table_department中有两个字段,分别为d_id,d_name。d_id记录的是部门编码, d_name记录的是部门名称,各部门的组织方式如下:A为顶级部门,A部门的下级部门使用AA、BA、CA……表示AA的下级部门使用AAA、BAA、CAA……表示BA的夏季部门使用ABA、BBA、CBA……表示以此类推。新建一个应用程序,写一个页面或窗体原创 2012-10-11 09:25:19 · 457 阅读 · 0 评论 -
肥兔读书笔记之Effective C#(第2版) 第一章
Effective C#(第2版)中文名称为: C#高效编程 改进C#代码的50个行之有效的办法(第2版)这本书的中文名字起的很蛋疼,其它Effective系列的书名都是Effective XXX,在网上商城输入Effective就能全找到,唯独这本死活找不到,后来偶然机会才知到原来中文名称叫做C#高效编程 改进C#代码的50个行之有效的办法,真是蛋疼至极。第一章 C#语转载 2012-06-07 12:35:56 · 399 阅读 · 0 评论 -
架构设计目录
架构引用维基百科:软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,原创 2012-06-06 16:59:06 · 230 阅读 · 0 评论 -
好的正侧表达式例子
文章来源http://www.cnblogs.com/xiachufeng/archive/2011/02/26/1965969.html1.文本框只能输入数字代码(小数点也不能输入)2.只能输入数字,能输小数点.3.数字和小数点方法二4.只能输入字母和汉字5.只能输入英文字母和数字,不能输入中文6.只能输入数字和英文chun7.小数点后只能原创 2012-05-13 20:11:54 · 965 阅读 · 0 评论 -
类型,对象,线程栈和托管堆在运行时的相互关系
类型,对象,线程栈和托管堆在运行时的相互关系(一)中说到类型,对象,线程栈和托管堆在运行时的相互关系。下面围绕CLR再来讨论这个问题。定义如下两个类。internal class Employee {public public Int32 GetYearsEmployed() { ... }public virtual String GenProgressReport() { ..原创 2012-05-30 09:04:33 · 339 阅读 · 0 评论 -
用最简单的例子,从最简单的设计开始,重构着讲解设计原则与模式——从DIP中“倒置”的含义说接口的正确使用
提纲开灯的例子暗流涌动Guru眼中的依赖DIP(依赖倒置原则)为什么要解耦合?接口的坏味道同一张类图的不同解释——真假DIP了解DIP有什么用?DIP用在什么地方?下回预告参考文献开灯的例子 选开灯做例子,是因为这个例子既常见又简单,而且潜在的需求多样。对于最简单的灯,从功能上讲,按下灯上的开关,灯就开了。 用代码实现这样一个有开关功能的原创 2012-05-27 20:47:05 · 421 阅读 · 0 评论 -
c#获取当前日期时间
我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。//获取日期+时间DateTime.Now.ToString(); // 2008-9-4 20:02:10DateTime.Now.ToLoc原创 2012-03-27 17:34:48 · 231 阅读 · 0 评论 -
浅析C#中object sender与EventArgs e
一、了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。 EventArgs是包含事件数据的类的基类,用于传递事件的细节。 EventHandler是一个委托声明如下 public delegate void EventHandler( object sender , Event原创 2011-12-29 13:20:14 · 433 阅读 · 1 评论 -
什么是反射?
反射是一种晚绑定,它可以被开发者用来设计出更具灵活性的代码,而代价则是花费更多的系统资源开销使得应用程序可以在运行时获取一些未知信息。说白了,在编写代码的时候,开发者可能还不知道或不能确定一些对象的信息,于是把决定权交给代码本身,将来在需要的时候由代码自己去获取和判断这些信息并作出相应的反应。这样的方式固然可以使代码更加灵活,但在想要使用反射的时候,必须先考虑好在性能与灵活之间的一个权衡,不能盲目原创 2011-10-25 20:13:10 · 546 阅读 · 0 评论 -
override和overload的区别
override 和 overload 的区别? 答:override 表示重写,用于继承类对基类中虚成员的实现overload 表示重载,用于同一个类中同名方法不同参数(包括类型不同或个数不同)的实现示例:using System;using System.Collection原创 2011-07-24 09:29:26 · 238 阅读 · 0 评论 -
如何手工释放资源
如何手工释放资源?答: .NET 平台在内存管理方面提供了GC(Garbage Collection),负责自动释放托管资源和内存回收的工作。但在以下两种情况需要我们手工进行资源释放:一、由于它无法对非托管资源进行释放,所以我们必须自己提供方法来释放对象内分配的非托管资源,比如你原创 2011-07-24 09:28:30 · 212 阅读 · 0 评论 -
基础才是重中之重之类是怎么执行的
对于一个程序员来说,有必要知道一个概念的同时也解它的执行过程,这样对于写出更好更安全的程序是有帮助的。大牛们不是一天就成为大牛的,而是经过一步一步的实践,不断的知识的积累才成为大牛的,呵呵。今天是我“基础才是重中之重”文章系列的又一讲,也是最基础的一讲,类,已经class主要从出生到死亡都讲一下,呵呵。1 类的建立public class Person{原创 2012-05-21 09:25:21 · 242 阅读 · 0 评论 -
基础才是重中之重之面向抽象编程(抽象类的多态性)
上一篇文章主要让大家知道了基类与派生类,及它们的转换关系,即它们不能相互转换,只能从派生类转换到基类,下面来看一个抽象类和它派生类实现的一种编程方式,即面向抽象的编程。以下是面向抽象的编程实例:(完整代码) /// /// 基类 /// abstract class parent { public string nam原创 2012-05-21 09:26:33 · 375 阅读 · 0 评论 -
基础才是重中之重之派生类集合与基类集合可以相互转换吗?
派生类可以直接强转为类基类型,而反之则不可以,它们的集合也具有这种特性以下实例是parent是基类,sub是它的派生类,如果有一个sub类型的集合希望转换为parent,那是可以的,它可以广泛的应用于面向接口和面向抽象的编程环境中。 class parent { public string name { get; set; }原创 2012-05-21 09:27:12 · 688 阅读 · 0 评论 -
引用参数(ref)以及输出参数(out)
我们已经知道了值类型和引用类型,但是一定要区别"值类型和值参数","引用类型和引用参数",这一点是最容易让初学者搞晕的,说白了,所谓"类型",就是一种相似或相同的东西的抽象,它表示了一种相类似,例如,把东西分"类",此时这个类就是我们说的类型,而值参数和引用参数呢?无论这两个中的哪个,都离不开"参数"二字,什么是参数?或者说参数是在什么里面的?答案当然是方法里面,离开了"方法()"的这对"小括号(原创 2012-06-25 09:28:46 · 1043 阅读 · 0 评论 -
C#中参数传递
一、参数的一般传递方式 在c#中,除非使用ref或者out前缀,所有参数都通过值来传递。变量的栈数据会完整复制到目标参数中。分为以下3种情况:1、 引用类型的变量只包含对象所在的内存地址,将要复制的是内存地址而不是对象本身,所以对底层对象的修改会保留。如果在方法内部将内存地址指向一个新对象, 则方法结束后在方法中所作的修改会被丢弃。 class Progr原创 2012-05-22 11:52:58 · 248 阅读 · 0 评论 -
正则表达式常用验证整理
匹配网址URL的正则表达式:1:[url=http://([w-]+.)+[w-]+(/[w[/url]http://([w-]+.)+[w-]+(/[w[/url[/url]]- ./?%&=]*)?2:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$3:^[a-zA-z]+://(\\w+(-\\w+)*)(原创 2012-05-22 11:35:28 · 324 阅读 · 0 评论 -
深入C#内存管理来分析 值类型、引用类型、装箱、拆箱、堆栈几个概念组合
-C#初学者经常被问的几道辨析题,值类型与引用类型,装箱与拆箱,堆栈,这几个概念组合之间区别,看完此篇应该可以解惑。 俗话说,用思想编程的是文艺程序猿,用经验编程的是普通程序猿,用复制粘贴编程的是2B程序猿,开个玩笑^_^。 相信有过C#面试经历的人,对下面这句话一定不陌生: 值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈上,引用类型存储在托管堆上,值类型原创 2012-05-21 09:31:18 · 531 阅读 · 0 评论 -
基础才是重中之重之用好“逻辑与”和“逻辑或”,可以让你的程序更优美!
当进行“与”运算时,从左向右比较,出现一个为false时,立即退出,不会比较后台的,即使后面的有异常程序也不报错 当进行“或”运算时,从左向右比较,出现一个为true时,立即退出,不会比较后台的,即使后面的有异常程序也不报错 List arr = null; if ( arr != null || arr.Count > 0)原创 2012-05-21 09:30:12 · 629 阅读 · 0 评论 -
基础才是重中之重之通过人类的生活来学习Delegate
一个人(people),在他60岁之后,就宣布进入晚年了,在这个期间要多注意身体,多体检。namespace NET基础才是重中之重{ /// /// 人类 /// public class People { private int age; public string name = "张占占原创 2012-05-21 09:29:46 · 379 阅读 · 0 评论 -
基础才是重中之重之理解内存中的栈和堆
.NET中使用stack(栈)和heap(堆)两种结构在内存中存储数据,今天咱们就来说说这两个结构Value Types,值类型 在C#中,值类型继承自System.ValueType的,它们分别是 Bool, byte , char, decimal, double, enu, float, int, long, sbyte, short, stru原创 2012-05-21 09:29:08 · 214 阅读 · 0 评论 -
基础才是重中之重之你是否真正理解static对象
我们挂在嘴过的一句话就是“static是静态对象,在类第一次被使用,或者第一次被实例化时执行“,但是你是否真正理解这句话,或者说你是否有对这句话进行一个实际的验证,如果没有,那我来带您完成这次旅行吧!首先有一张表,不会经常发生变化,比如分类表,他是一种树型结构表,结构可能是这样 /// /// 分类表 /// publi原创 2012-05-21 09:27:48 · 209 阅读 · 0 评论 -
Command模式——命令模式
引言提起Command模式,我想没有什么比遥控器的例子更能说明问题了,本文将通过它来一步步实现GOF的Command模式。我们先看下这个遥控器程序的需求:假如我们需要为家里的电器设计一个远程遥控器,通过这个控制器,我们可以控制电器(诸如灯、风扇、空调等)的开关。我们的控制器上有一原创 2011-07-24 09:26:57 · 214 阅读 · 0 评论 -
Abstract Factory模式——抽象工厂模式
意 图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 适 用 环 境 一个系统要独立于它的产品的创建、组合和表示时。 一个系统要由多个产品系列中的一个来配置时。 当你要强调一系列相关的产品对象的设计以便进行联合使用时。 当你提供一个产品类库,而原创 2011-07-24 09:25:42 · 169 阅读 · 0 评论 -
如何监视指定目录中文件系统的创建、修改、删除
试题要求:如何监视指定目录中文件系统的创建、修改、删除考察知识点:FileSystemWatcher组件、文件操作参考答案:private static void FileSystemWatcherDemo() { FileSystemWatc原创 2011-07-24 09:16:57 · 270 阅读 · 0 评论 -
C#数组学习
数组概述 C# 数组从零开始建立索引,即数组索引从零开始。C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。int[] tab原创 2011-07-24 09:04:45 · 154 阅读 · 0 评论 -
C#路径/文件/目录/IO觉操作汇总(二)
摘要:文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题, 尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。原创 2011-07-24 08:50:13 · 279 阅读 · 0 评论 -
C#命名规范
.net(C#)的命名规范 本文从类、类字段、方法属性、参数常量、接口、事件、命名空间等9个方面总结了C#语言命名的规则。 下面介绍C#语言命名的9种规范: a)类 【规则1-1】使用Pascal规则命名类名,即首字母要大写。 【规则1-2】使用能够反映类功能的名词或名词短语命名原创 2011-07-24 08:46:48 · 592 阅读 · 0 评论 -
C#命名空间介绍
Microsoft.Csharp包含支持用C#语言进行编译的代码Microsoft.Jscript包含支持用Jscript语言进行殡仪和代码生成的Jscript运行库和类Microsoft.VisualBasic包含Visual Basic.NET运行库。此运行库于Visual原创 2011-07-24 08:45:29 · 463 阅读 · 0 评论 -
静态成员和非静态成员的区别
1.静态成员和非静态成员的区别?答:静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类名进行访问。不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问。一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一原创 2011-07-24 09:30:06 · 255 阅读 · 0 评论 -
Strategy模式——策略模式
意 图 定义一系列的算法 , 把它们一个个封装起来 , 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 适 用 环 境 u 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 u 需要使用一个算法的不同变体。例如原创 2011-07-24 09:24:40 · 321 阅读 · 0 评论 -
如何搜索指定目录下的所有文本文件
试题要求:如何搜索指定目录下的所有文本文件考察知识点:DirectoryInfo或Directory参考答案1:private static void SearchTxtFileFromDirectory(string dir) { if (D原创 2011-07-24 09:15:21 · 828 阅读 · 0 评论 -
C#之抽象类与接口的区别
抽象类和接口的区别?答:抽象类(abstract class)可以包含功能定义和实现,接口(interface)只能包含功能定义抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性;接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性分析对象原创 2011-07-24 09:12:26 · 301 阅读 · 0 评论 -
C#正则表达式整理备忘(一)
(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:string x="D:\\My Huang\\My Do原创 2011-07-24 08:51:28 · 79 阅读 · 0 评论 -
C#之理解接口的作用
在C#的开发中,接口是非常重要也非常好用的。可是很多时候很多人都不是很了解接口的做用,以及该如何使用。下面我们就来理解接口的作用,并看看如何使用吧。假设我们公司有两种程序员:VB程序员,指的是用VB写程序的程序员,用clsVBProgramer这个类表示;Delphi程序员指的是原创 2011-07-24 09:05:31 · 169 阅读 · 0 评论 -
C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
1.C#类和接口的区别接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!而类是负责功能的具体实现!在类中也有抽象类的定义,抽象类与接口的区别在于:抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。但接口是一个行为的原创 2011-07-24 09:06:29 · 175 阅读 · 0 评论 -
C#索引指示器
什么是索引指示器? 答: 实现索引指示器(indexer)的类可以象数组那样使用其实例后的对象,但与数组不同的是索引指示器的参数类型不仅限于int。简单来说,其本质就是一个含参数属性示例:using System;using System.Collections.Generic原创 2011-07-24 09:08:16 · 372 阅读 · 0 评论 -
C#中类与结构的区别
类和结构的区别?答: 类:类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存类有构造和析构函数类可以继承和被继承结构:结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。结构没有构造函数,但原创 2011-07-24 09:13:34 · 238 阅读 · 0 评论 -
C#之关键字abstract
abstract 是什么意思? 答: abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员 abstract 不可以和 static 、virtual 一起使用声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的原创 2011-07-24 09:10:29 · 225 阅读 · 0 评论 -
C#之关键字New
new 修饰符是起什么作用? 答: new 修饰符与 new 操作符是两个概念; new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员。而new 操作符用于实例化一个类型; new 修饰符只能用于继承类,一般用于弥补基类设计的不足; new 修饰符和 overr原创 2011-07-24 09:09:22 · 216 阅读 · 0 评论