c#
文章平均质量分 80
aiaoliya0622
学海,一页小舟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
匿名方法
匿名方法 在原来的C#版本中我们是这样定义Event:this.Button1.Click += new EventHandler(Button1_Click)private void Button1_Click(object sender,EventArgs e){ //…} 在现在的2.0版本中有了匿名方法,我们可以将上面的代码这样编写原创 2007-10-01 01:01:00 · 759 阅读 · 0 评论 -
用C#电子邮件验证的类
/* 电子邮件验证 Windows2000 、Microsoft.NET Beta2、C# Made By Qingming Zhao Email: zqm2000@126.com 2002,2,17 csc /target:library ValideEmail.cs */ using System; using System.Net.S转载 2007-11-18 10:21:00 · 647 阅读 · 0 评论 -
认识C#中的委托和事件
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和原创 2007-11-18 10:39:00 · 502 阅读 · 0 评论 -
C#中操作xml文件(插入节点、修改、删除)
已知有一个XML文件(bookstore.xml)如下: Oberons Legacy Corets, Eva 5.95 1、往节点中插入一个节点: XmlDocument xmlDoc=new原创 2007-11-18 10:43:00 · 1175 阅读 · 0 评论 -
#.Net网络程序开发-Socket篇
Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从so原创 2007-11-18 10:45:00 · 658 阅读 · 0 评论 -
异步编程(1)
我们知道,使用多线程可以提高程序运行的效率,加速程序的运行。但是我们也应该知道每个线程都要耗费许多资源,在程序中不是运行的线程越多好,我们要掌握如何充分利用多线程的优势。要尽量使线程运行,不要让它挂起,因为挂起的线程不再运行。但是仍然耗费系统资源。线程池是一种非常好的技术,可以大大提高程序的效率,而且又把新建每个线程的消耗降到最小。下面我们看一下c#中提供的有关线程池的方法以及如何使用:转载 2007-11-19 10:27:00 · 490 阅读 · 0 评论 -
C#编程中的 New 关键词的几种用法
前段时间一个朋友问到C#的New关键字有几种用法,虽说在日常编程中经常用到这个小家伙,但它到底有几种用法还真没有留意过,现将从网上总结出的资料记下以供同仁学习。 (1)new 运算符 用于创建对象和调用构造函数。 (2)new 修饰符 用于隐藏基类成员的继承成员。 (3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。 new 运算符 1.原创 2007-11-18 09:56:00 · 595 阅读 · 0 评论 -
使用C#轻松编写.Net组件(1)
在.net框架提出之前,编写组件被视为是一种需要高深技巧的工作,令很多人望而生畏。而.net的出现,使得组件的编写变得如此平易近人,而.net framework的核心语言C#,更是被称为面向组件的语言。在这里,我将向大家介绍如何使用C#编写在.net framework环境下运行的组件,包括如何编写组件类,如何添加域、属性以及事件,如何编译和分发组件。 首先看下面这段足够简单的代转载 2007-11-18 10:18:00 · 1197 阅读 · 0 评论 -
C#线程池的实现
具体的需求是 在某一时间点,只有N个线程在并发执行,如果有多余的线程,则排队等候~ 还真是费尽心思啊~最终还是被我攻克了,下面我就来说说具体的实现 : C#提供了Mutex与Interlocked这两个与线程相关的类,都在Threading命名空间下! Mutex中提供了WiteOne,ReleaseMutex 两个实例方法:WiteOne的作用是"阻塞当前线程,提供对该线程的原子操作"也转载 2007-11-18 10:28:00 · 1197 阅读 · 0 评论 -
异步编程(2)——.NET的异步编程模型
APM支持三种聚集的技巧:等待直到完成,轮询和方法回调,下面追一介绍这几种技巧:1.等待直至完成using System;using System.IO;using System.Threading;public static class Program ...{public static void Main() ...{FileStream fs = new FileStream(@转载 2007-11-19 10:24:00 · 618 阅读 · 0 评论 -
c#.net常用函数和方法集
c#.net常用函数和方法集 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原创 2007-11-20 00:56:00 · 622 阅读 · 0 评论 -
雅虎公司C#笔试题 [含答案]
Question 1. (单选) 在计算机网络中,表征数据传输可靠性的指标是 1. 传输率 2. 误码率 3. 信息容量 4. 频带利用率 Question 2. (单选) 以下关于链式存储结构的叙述中哪一条是不正确的? 1. 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 2. 逻辑上相邻的结点物理上不必邻接 3. 可以通过计算直接原创 2007-11-20 01:16:00 · 1165 阅读 · 0 评论 -
C#中实现接口的几种方法
本文中所有图示纯为个人理解(参考了Assembly中元数据的存储方式),与真实情况可能有所出入。 图中绿色表示公有方法,红色表示私有方法。 本文将通过以下四个案例来分析C#中的接口究竟是如何工作的。 1、公有方法实现接口方法 尽管C#在定义接口时不用指明接口方法的访问控制方式,但默认接口方法均为public型(这可以从反编译的IL代码中看到)。下面是使用Reflector查看的接转载 2007-11-18 10:13:00 · 5117 阅读 · 0 评论 -
C# 索引器学习笔记
简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。 声明方法如下(与属性相似): //修饰符 类型名称 this [类型名称 参数名] public type this [int index] { get { //... } set { //... } } 用例子简单说明: using System.Collections; static void Mai原创 2007-11-18 10:42:00 · 611 阅读 · 0 评论 -
利用C#实现标注式消息提示窗口
近一段时间由于项目需要一直专注于UI方面的编程,为了更加友好的将提示信息呈现给用户,我们必须对标准的Windows消息提示窗口进行处理。我们大家在Windows XP下使用U盘、闪存等移动存储设备,当插上或拔下这些设备时任务栏区域都会显示一个淡黄色背景,且具有标注样式的提示窗口弹出来,这样的提示即友善又美观,那么这到底是怎么实现的呢?其实道理并不复杂,该标注式提示窗口本身就是一个不规则窗体,当显示转载 2007-11-18 10:53:00 · 1103 阅读 · 0 评论 -
浅析C#中的套接字编程
#是微软随着VS.net新推出的一门语言。它作为一门新兴的语言,有着C++的强健,又有着VB等的RAD特性。而且,微软推出C#主要的目的是为了对抗Sun公司的Java。大家都知道Java语言的强大功能,尤其在网络编程方面。于是,C#在网络编程方面也自然不甘落后于人。本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识,以期能使大家对此有个大致了解。首先,我向大家介绍一下转载 2007-11-18 11:03:00 · 1164 阅读 · 0 评论 -
使用C#轻松编写.Net组件(3)
然后,我们编写了一个GetString()函数,这个函数根据用户传入的index值,返回相应的记录: public string GetString(int index) { … return StringsSet[index];} 要注意的是其中的异常处理的方法: throw new IndexOutOfRangeException(); 作为一个健壮的组原创 2007-11-18 10:20:00 · 591 阅读 · 0 评论 -
使用C#轻松编写.Net组件(2)
一般地,我们首先创建一个命名空间(namespace)用来封装这个组件中一系列的类: namespace CompCS 命名空间的使用非常灵活,它可以被嵌套,也可以将其内部的类分别写在多个文件中,相应地,还可以在一个源文件中声明多个非嵌套的命名空间。下面是一个使用嵌套的命名空间的示例代码: namespace NestIt{ namespace NestedNameSpac原创 2007-11-18 10:19:00 · 618 阅读 · 0 评论 -
C#泛型编程
C#泛型编程 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。例子代码:class Program { static void Main(string[] args) { int obj = 2; Testint>原创 2007-10-01 01:08:00 · 1027 阅读 · 1 评论 -
装箱拆箱续
装箱拆箱续 原来写了一篇有关装箱拆箱的文章,这几天看到这个例子,觉得更能说明一些问题,首先看下面的例子 namespace InBoxUnInBoxTest{ internal struct Point { private int m_x, m_y; public Point(int x, int y)原创 2007-10-01 01:11:00 · 699 阅读 · 0 评论 -
简单工厂、工厂、抽象工厂的区别
工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放到了一个具体类上. 简单工厂是工厂方法模式的特例。 工厂方法模式和抽象工厂模式的最主要的区别在于对工厂的抽象程度上。 抽象工厂模式中一般是抽象出工厂接口,表示他就是一个工厂,而不管它是制造什么产品的工厂,他的抽象程度较高。 而工厂方法模式的抽象工厂一般是针对于产品进行抽象,表示它是一个生产某类产品的工厂。 简单工厂是不支持继承原创 2007-10-01 14:08:00 · 580 阅读 · 0 评论 -
使用反射在NET中实现动态工厂(第二部分)
使用反射来建立动态工厂反射的机制我这里就省略了。.NET Framework 提供给对象使用属性来描述自己的能力。属性被声明成一个从System.Attribute继承下来的类。一个已经定义的属性可以附加到:接口、类、装配件上。下面定义了两个属性类:[AttributeUsage(AttributeTargets.Class)]public class Invent转载 2007-10-01 14:06:00 · 455 阅读 · 0 评论 -
设计模式C#描述——抽象工厂模式
阅读此文应先阅读简单工厂模式与工厂方法模式抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分开,可以引进抽象工厂模式。这样的话,消费产品的客户不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。采用抽象工厂模式设计出的系统类原创 2007-10-01 14:09:00 · 641 阅读 · 0 评论 -
迭代器
迭代器是使用在foreach中的集合。以前写过一篇《小议foreach》。在其中写了实现一个可以用于foreach的集合。在C#2.0中使用迭代器创建一个用于foreach的集合,实现上比较简单:继承于IEumnerable,并实现GetEnumerator()。首先这个集合要基于IEnumerable(可以使用泛型),下面先来实现一个非泛型版的迭代器。代码如下(非泛型代码示例来源于MSDN)原创 2007-10-01 00:59:00 · 519 阅读 · 0 评论 -
装箱拆箱
装箱拆箱 我原来对于装拆箱的理解只是停留在将值类型转化为Object类型,然后再转换回来。实际上,在这个看似简单的问题上还有一层更深的含义。值类型和引用类型在实例化的时候是存储在不同的空间中的,值类型存储在Stack上,而引用类型是存储在Heap上,在装箱的过程中实际上是将在Stack上的值类型对象拷贝到Heap上,并以引用对象的存储格式保存,在这个过程中对所转换的引用类型对象进行修改操作原创 2007-10-01 10:29:00 · 815 阅读 · 0 评论 -
C# 文件操作(上传 下载 删除 文件列表...)
using System.IO;1.文件上传----------如下要点:HTML部分:后台CS部分 按钮事件 //string strFileFullName = System.IO.Path.GetFileName(this.FileUpLoad.PostedFile.FileName);//this.FileUpLoad.PostedFile.SaveAs(Server.MapPath(转载 2007-10-01 12:24:00 · 950 阅读 · 0 评论 -
使用反射在NET中实现动态工厂(第一部分)
在软件开发进行了若干年后,设计模式逐渐被更多的程序员理解和采用。对常见的特定问题总是有其解决办法,这些解决办法逐渐得到了大家的公认。许多这样的解决办法被汇总整理成设计模式用来解决很多编程中的问题。基于这一点,微软公司提供了一个专栏来讨论各种实用的模式来帮助大家更快的解决开发过程中的问题。(http://msdn.microsoft.com/msdnmag/issues/03/03/design转载 2007-10-01 14:05:00 · 711 阅读 · 0 评论 -
ASP.Net学习之常用模块整理(2)
5.DataList分页(其实Repeart也可采用这个,只是改一下控件名而已)用户控件 DataList: DlstInfolistLabel:lblCurrentPage HyperLink:lnkNext LnkPrev存储过程:supplyinfo_selectwindow.attachEvent("onload",function (){AutoSizeDIV(CODE_7643原创 2007-10-01 14:12:00 · 528 阅读 · 0 评论 -
ASP.Net学习之常用模块整理(1)
每做完一个项目,就可以有很多的经验跟技巧学到,感谢公司能给我这么一个机会做这么一个大项目,让我从一个从刚学会一点ASP.Net的菜鸟过渡到可以用c#正常手写相关常用模块的一个真正的程序员,一个人做项目可以学得很多很多的东西,当然其中碰到困难也只能靠自己一个人去解决.为了让大家更好的学习,我把常用的模块写成一个个方法,希望能对大家有用.每个人都有不同的算法跟代码习惯,而且个人水平有限,欢迎大家多多指转载 2007-10-01 14:14:00 · 543 阅读 · 0 评论 -
设计模式C#描述——工厂方法模式
工厂方法模式是类的创建模式,又叫做虚拟构造子模式或多态性工厂模式。它的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。简单工厂模式的缺点:由于工厂类集中了所有产品创建逻辑的,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。工厂方法模式的优点:在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将创建的工作交给子类去做。这个原创 2007-10-01 14:22:00 · 655 阅读 · 0 评论 -
反射之反思
清晰的组件化目标是否因在库间共享过多类型信息而落空?或许您需要高效的强类型化数据存储,但如果每次对象模型发展后都需要更新您的数据库架构,那会耗费很大成本,所以您更愿意在运行时推断出其类型架构吗?您需要交付能接受任意用户对象的组件,并以某种智能化的方式处理它们吗?您希望库的调方者能以编程方式向您说明它们的类型吗?如果您发现自己在苦苦维持强类型化数据结构的同时,又冀望于最大化运行时灵活性,那么您大转载 2007-10-14 17:32:00 · 489 阅读 · 0 评论 -
面向对象设计原则
一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。 二、开闭原则(OCP) 软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说:对于扩展是开放的,对于更改是封闭的。怎样可能在不改动模块源代转载 2007-10-14 17:34:00 · 1212 阅读 · 0 评论 -
泛型
c#2.0比c#1.0有一点最大的改进就是加入对泛型的支持。泛型起源于c++语言的模板机制。这样在c#中就避免了不必要的拆装箱操作,而且还加强了编译时的安全性,强类型的检查。CLR#允许创建泛型引用类型,值类型,但是不许创建泛型枚举类型。 还可以创建泛型接口,委托,以及最常见的泛型方法。//c#中的泛型集合类:ListT>DictionaryTKey, TValue>SortedDic原创 2007-11-19 10:29:00 · 682 阅读 · 0 评论
分享