
C#
文章平均质量分 51
shansun1234
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
策略模式
一、概念策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strate...原创 2010-10-08 16:34:08 · 124 阅读 · 0 评论 -
Path problems with ASP.NET Web Application in C#
On 16 Nov 2004 15:17:29 -0800 inmicrosoft.public.dotnet.framework.aspnet, (JohnHite) wrote:>XmlTextReader xmlReader= new>XmlTextReader(@"C:\WebApp\conf\config.xml");>>Now...This works ...原创 2009-08-10 15:42:07 · 96 阅读 · 0 评论 -
VS2005中自动生成get/set属性
选中私有字段,右键菜单“重构”→“封装为字段”。VS2003里面没有。或者:键入prop然后用tab键就可以生成包含完整get/set的代码段或者:可以装个Resharper,Alt+Ins...2009-07-23 16:07:33 · 190 阅读 · 0 评论 -
C#对XML的CRUD操作点滴
用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。已知有一个XML文件(bookstore.xml)如下:[code="xml"] Oberon's Legacy Corets, Eva 5.95 [/code]1、往节点中插入一个节点:[code="c#"]XmlDocument xmlDoc=...原创 2009-07-22 11:26:16 · 149 阅读 · 0 评论 -
NUnit常用属性汇总
[color=darkred][b][TestFixture][/b][/color]用于标记一个测试类1 测试类必须是Public的。2 必须有一个缺省的构造函数,构造函数应该没有任何的副作用。[color=darkred][b][Test][/b][/color]用于标记测试方法1 方法必须没有参数。2 必须是Public 返回值为 vo...原创 2009-07-21 10:54:10 · 208 阅读 · 0 评论 -
C# 删除文件夹
/// <summary> /// C# 删除文件夹 /// 用法: DeleteFolder(@"c:\\1"); /// </summary> /// <param name="dir"></param> private static void DeleteFolder(string...原创 2009-12-31 11:28:54 · 130 阅读 · 0 评论 -
DotNet(C#)中创建WebService及两种调用方式
微软.NET战略的一个比较重要的部分就是webservice,利用webservice我们可以创建真正有效的分布式应用程序。 下面,我们对webservice做一些说明。 假设A是客户端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端XML格式的数据。 现在我们看一看创建一个webservice的大致过程: 服务端的we...原创 2009-07-17 09:31:28 · 592 阅读 · 0 评论 -
System.Windows.Forms.Timer和System.Timers.Timer的区别 [转]
.NET Framework里面提供了三种Timer:System.Windows.Forms.TimerSystem.Timers.TimerSystem.Threading.TimerVisual Studio 2003的工具箱里面默认提供了System.Windows.Forms.Timer和System.Timers.Timer两种,而Visual Studio...原创 2009-12-16 23:44:16 · 416 阅读 · 0 评论 -
C# 如何判断一个引用是数组类型?
问答原文:[i]string[] a; int[] b; // 这样可以判断,但是不是我想要的写法,因为is判断不仅限于类型相等,前者是后者的子类也返回true // 虽然Array不会有子类,但是我希望写法和其他代码统一风格 if (a is Array){ .... // true if (b is Array){ .... // true // 我...原创 2009-06-04 13:24:38 · 718 阅读 · 0 评论 -
C#和C++的区别
C#是三大主流OOP(面向对象编程)语言(C++, Java, C#)之一,也是最新的一种,其中必然借鉴了前两者的长处,“否则它的缔造者就该打屁股”——候捷语,见《C# Primer 中文版》的译续:-) 它们三者有太多的共性,其语法和编程概念,绝大部分彼此兼容,精一而通三。尤其对熟练掌握C++的程序员而言,学习Java和C#没有任何难度,唯一需要花些时间的地方就是熟悉这二者的类库。三者中...原创 2009-05-30 02:09:12 · 196 阅读 · 0 评论 -
C#索引器示例代码
[code="c#"]/** * 索引器允许类和结构的实例按照与数组相同的方式进行索引,索引器类似与属性,不同之处在于他们的访问器采用参数。被称为有参属性。 * 索引器与属性的比较: * □标示方式:属性以名称来标识,索引器以函数签名来标识。 * □索引器可以被重载。属性则不可以被重载。 * □属性可以为静态的,索引器属于实例成员,不能被声明为static * ...2009-05-22 18:39:43 · 167 阅读 · 0 评论 -
使用SqlHelper时“阅读器关闭时read的尝试无效”的解决方法
原SqlHelper类中ExecuteReader方法体为: public static SqlDataReader ExecuteReader(string sqlString, params SqlParameter[] sqlParams) { using (SqlConnection conn = new SqlConnection(c...2010-04-20 14:54:33 · 159 阅读 · 0 评论 -
ASP图片缩放编程
今天觉得首页出来的图片太慢了,所以着手改图片大小的问题查看了一下原因,问题出在产品的缩略图上,以前是直接用这样缩放的,其实它还是把原图下载到了本地,原图有多少大就下载多少大.而主页要显示4个图片,每个原图都有600K就要2.4M,是够大的了.于是考虑怎么样显示缩略图.起先开始想把上传的时候就生成缩略图,但是,现在是asp,有难度的,网上找了好久没有攻略,都说要组件才能做到,...原创 2009-08-18 09:33:51 · 148 阅读 · 0 评论 -
C#的逆向工程-IL指令集
一些 IL 语言解释: 跳转指令集合Public field Static Beq 如果两个值相等,则将控制转移到目标指令。Public field Static Beq_S 如果两个值相等,则将控制转移到目标指令(短格式)。Public field Static Bge 如果第一个值大于或等于第二个值,则将控制转移到目标指令。Publ...2010-04-30 10:28:49 · 219 阅读 · 0 评论 -
C#获取返回错误码
[DllImport("TestWin32Dll.dll", EntryPoint = "TestFunc",SetLastError = true)]private static extern void TestFunc();private void TestPInvoke(){ TestFunc(); int reCode = Marshal.GetLastW...原创 2010-05-21 17:59:12 · 480 阅读 · 0 评论 -
VS.NET 开发Windows服务的步骤
在很多应用中需要做windows服务来在一些后台操作,比如监视应用程序的运行状况等利用vs.net我们可以在几分钟之内建立其windows服务,非常简单下面说一下步骤1. 新建一个项目2. 从一个可用的项目模板列表当中选择Windows服务3. 设计器会以设计模式打开4. 然后为这个服务填加功能5. 将这个服务程序切换到设计视图6. 右击设计视图选择“添加安装程序”7. 切换到刚被添加的Pro...2010-05-20 14:25:58 · 186 阅读 · 0 评论 -
c# 允许服务与桌面交互
我们写一个服务,有时候要让服务启动某个应用程序,就要修改服务的属性,勾选允许服务与桌面交互,可以用修改注册表实现,我们必须在安装后操作,所以请重写Installer的OnAfterInstall。 protected override void OnAfterInstall(System.Collections.IDictionary savedState) ...原创 2010-05-20 14:20:24 · 340 阅读 · 0 评论 -
C#单例模式的三种写法
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我……public class Singleton{ private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { ...原创 2010-05-19 15:58:40 · 679 阅读 · 2 评论 -
C#中获取我的文档系统文件夹路径
本技巧使用GetFolderPath方法来获取指向由指定枚举标识的系统特殊文件夹的路径。语法格式如下:public static string GetFolderPath (SpecialFolder folder)参数folder标识系统特殊文件夹的枚举常数。如果指定系统的特殊文件夹存在于用户的计算机上,则返回到该文件夹的路径;否则为空字符串(" ")。如果系统未创建文件夹、已删...原创 2010-05-17 15:29:22 · 249 阅读 · 0 评论 -
C# Nullable 使用一例
[code="c#"]using System;using System.Collections.Generic;using System.Text;namespace Nullable{ class Program { static void Main(string[] args) { Co...2009-08-20 16:05:07 · 137 阅读 · 0 评论 -
c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别
C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是obje...原创 2009-08-20 13:49:18 · 213 阅读 · 0 评论 -
System.Environment使用一例
[code="c#"]using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace Chapter3{ class Program { static void Main(string[] args)...2009-08-20 13:46:16 · 217 阅读 · 0 评论 -
C#自定义事件的步骤介绍
通常C#自定义事件有下面的几个步骤: 1、声明一个delegate: (用于事件的类型的定义) 如:public delegate void 事件名称EventHandler(object serder, EventArgs e); //事件名称用你的自己的来代替,随后的EventHandler是C#的建议命名规范,当然如果你不想遵守,可以使用...原创 2010-05-13 17:54:46 · 335 阅读 · 0 评论 -
使用反射机制遍历对象中的属性名及属性值
首先描述一种情景,当给你一个VO类(这个类是映射到数据库的表上的),现在让你把这个VO对象(已包含有效数据)另存为成XML文件,一般的做法可能是: rows[i].SetAttribute("Adddate", ret[i].Adddate); 如果属性只有五六七八个还可以忍受手写的方式,如果多至十几乃至几十的情况下,手写已经超出了人的忍耐程度。下面给出一种解决方法,利用C#...2010-05-03 16:20:30 · 406 阅读 · 0 评论 -
const vs. readonly
关于C#中的const和readonly想必使用C# .NET开发的朋友都很了解吧?总结一下const和readonly也就这么几条吧:1、const和readonly的值一旦初始化则都不再可以改写;2、const只能在声明时初始化;readonly既可以在声明时初始化也可以在构造器中初始化;3、const隐含static,不可以再写static const;readonly则不默...原创 2009-05-22 16:38:56 · 169 阅读 · 0 评论 -
两句话概括接口和抽象类
接口 = 定义了要做的所有事情,但自己啥也不干 抽象类 = 做了部分共做,剩下的他不干了,等后来人继续完成 小记:所有接口成员的默认访问类型都是public,如果在接口成员声明中包括了任何修饰符,那么会产生一个编译器错误。...原创 2009-05-22 16:31:26 · 130 阅读 · 0 评论 -
编写安全的多线程C#程序
与多线程相关的两个常见的需要解决的问题是:临界资源保护和线程间的同步依赖,每一种语言都提供了自己的一套设施(有的语言可能需要借助OS的API)来解决这两个问题,C#提供了更方便灵活的解决方案,首先C#可以允许我们在不同的级别上加锁,也就是说我们可以控制加锁的粒度。其次,C#提供了一套内置的线程安全的容器,方便我们的使用。 一.不同级别(Level)上的同步: 1.object ...原创 2009-11-15 01:24:50 · 138 阅读 · 0 评论 -
线程,同步与锁——Lock你到底锁住了谁
线程在多核时代的优势月来越明显,多线程编程的学习也提上议事日程。但越来越多的人陷入线程的泥潭,最后搞得自己面目全非。越来越多的死锁,越来越多的异常数据,在并发性测试中让一个个线程程序员焦头烂额。“自己在自己的编程环境下怎么都没事,单步调试也不会有任何错误,到了两个人,多个人测试的时候怎么就不行了呢?”线程,同步与锁的问题渐渐的凸现在了每个程序员的面前。 还是让我们一起来学习同步与锁吧。 lock是...原创 2009-11-15 01:18:47 · 198 阅读 · 0 评论 -
关于lock(this)的说明及用法
一. 为什么要lock,lock了什么?当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被一个线程操作,以确保每个操作都是有效即时的,也即保证其操作的原子性。lock是C#中最常用的同步方式,格式为lock(objectA){code...原创 2009-11-15 01:16:12 · 1083 阅读 · 0 评论 -
远程dll注入 C#
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Drawing;using System.Linq;using System.Runtime.Intero...原创 2009-11-14 16:43:27 · 399 阅读 · 0 评论 -
C# 3.0新特性之扩展方法
C#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本数据类型(如int,String等),也可以是自己定义的类。 //Demo--1//扩展基本类型namespace TestExtensionMethods{// 必须建一个静态类,用来包含要添加的扩展方法public static class Extensions{//要添加的扩展方法必须为一...原创 2009-11-09 17:02:42 · 85 阅读 · 0 评论 -
C#中如何将字符串转换byte[],同时如何将byte[]换成字符串?
1 string to byte [] string str = "abcd" ; byte[] bytes = System.Text.Encoding.ASCII.GetBytes(str); -----------------------------------------------------------------------...原创 2009-10-22 17:55:43 · 201 阅读 · 0 评论 -
c# 获取时间
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 ...原创 2009-10-07 12:47:32 · 98 阅读 · 0 评论 -
C# 多线程操作界面主线程示例
[code="c#"] #region ====== invoke ====== //定义一个委托用于跨线程访问方法 delegate void changeLbl(string str, bool bIsAdd); //访问主线程 private void ChangeLbl(string str,bool...原创 2009-09-26 10:33:17 · 488 阅读 · 0 评论 -
C#编程之 如何获取本地和远程主机的IP及MAC地址
利用dns类和WMI规范获取IP及MAC地址在C#编程中,要获取主机名和主机IP地址,是比较容易的.它提供的Dns类,可以轻松的取得主机名和IP地址.示例:string strHostName = Dns.GetHostName(); //得到本机的主机名IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机...原创 2009-09-24 12:58:58 · 335 阅读 · 0 评论 -
Application.DoEvents的使用
使对界面更新的消息能在执行Application.DoEvents的时候得到响应。原创 2009-09-24 11:36:59 · 130 阅读 · 0 评论 -
Invoke 和 BeginInvoke 的真正涵义
BeginInvoke 方法真的是新开一个线程进行异步调用吗?参考以下代码:public delegate void treeinvoke();private void UpdateTreeView(){ MessageBox.Show(System.Threading.Thread.CurrentThread.Name);}private void button1_Click(...原创 2009-11-15 17:37:26 · 121 阅读 · 0 评论 -
Invoke()/BeginInvoke()区别
查看MSDN如下: Control..::.Invoke ---> 在拥有此控件的基础窗口句柄的线程上执行委托。 Control..::.BeginInvoke ---> 在创建控件的基础句柄所在线程上异步执行委托。 显然,Invoke() 与 BeginInvoke() 方法间的主要区别在于“异步”关键字眼。 也就是说, I...原创 2009-11-15 17:43:42 · 201 阅读 · 0 评论 -
C#使textbox滚动到最新一行
方法1:textBox.Text += "实验...\r\n";textBox.Select(textBox.Text.Length - 1, 0);textBox.ScrollToCaret(); 方法2:textBox.AppendText("实验...\r\n");textBox.ScrollToCaret(); ...原创 2009-11-16 12:33:30 · 797 阅读 · 0 评论 -
c#中常用的一些异常类小结
该文章是本人看了一个视频教程后做的笔记,如果大家有发现错误的地方希望给予指出,有遗漏的地方希望大家给予补充。一、基类Exception二、常见的异常类 1、SystemException类:该类是System命名空间中所有其他异常类的基类。(建议:公共语言运行时引发的异常通常用此类) 2、ApplicationException类:该类表示应用程序发...原创 2009-05-22 14:59:10 · 126 阅读 · 0 评论