C# 基础
highplayer
这个作者很懒,什么都没留下…
展开
-
逆置数组
<br />1 快速逆置数组<br /> 可以使用Array中的Reverse方法。如:<br />int[] array = new int[] {1,3,5,4,2 }; Array.Reverse(array); foreach (int n in array) Console.WriteLine(n);<br />2 自己编写一个方法:DoReversal.优点:速度快,支持任何类型,不必装箱和拆箱。<br />原创 2010-12-05 21:34:00 · 3006 阅读 · 1 评论 -
List<T>.Find()方法的运用
以前为了找到LIST集合中某个特定项,还傻傻的用foreach去遍历集合,再返回符合条件的项。其中,微软早已提供了一个很好的方法来查找特定的LIST,那就是Find()方法。ListT>.Find()接收一个类型为T的委托,并且返回值为bool类型。示例:class Program { static void Main(string[] args) { List d原创 2012-04-10 13:55:20 · 8316 阅读 · 0 评论 -
word,txt转PDF 利用Aspose.Words
Aspose.Words 很强大的一个组件。利用Aspose.Words可以方便的实现TXT,WORD,PDF文件之间的相互转换。贴一个DOC转PDF的代码,其他类似。StreamReader reader = new StreamReader("temp.doc", Encoding.GetEncoding("gb2312")); string text =原创 2012-02-01 17:23:34 · 10310 阅读 · 4 评论 -
C#汉字转拼音首字母
// /// 得到汉字拼音首字母 /// /// /// public static string HZToPYSimple(string chineseStr) { try { byte[] b = System.原创 2012-01-18 17:30:27 · 4480 阅读 · 0 评论 -
关于C#中Thread.Join()的一点理解
Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates有两个主要问题:1.什么是the calling thread? 2.什么是a thread? 首先来看一下有关的概念: 我们执行一个.exe文件实际上就是开启了一个转载 2011-12-22 22:32:35 · 1732 阅读 · 0 评论 -
.NET限制程序一次只能运行一个实例
利用System.Threading命名空间下的Mutex类,可以限制应用程序,让它不能同时运行多个实例。在WinForm程序中,可以将Mutex类嵌在Main()函数中,代码如下:static class Program { /// /// 应用程序的主入口点。 /// [STAThread]原创 2011-12-18 21:57:29 · 3121 阅读 · 0 评论 -
用C#写屏幕截图小程序
一 方法 主要是利用Graphics.CopyFromScreen 方法实现屏幕截图。二 实现 1 建一个WindowsForm程序。Form1 界面如图:Form代码:using System;using System.Collec原创 2011-07-31 23:15:59 · 2461 阅读 · 3 评论 -
DataTable.Merge()方法
DataTable.Merge()方法可以实现两张表的数据合并。table1.Merge(table2)表示将table2中的数据合并到table1中,如:构建dt1:DataTable dt1 = new DataTable(); dt1.Columns.原创 2011-07-18 12:38:38 · 41093 阅读 · 1 评论 -
C# Stream 和 byte[] 之间的转换
<br />一. 二进制转换成图片<br />MemoryStream ms = new MemoryStream(bytes);<br />ms.Position = 0;<br />Image img = Image.FromStream(ms);<br />ms.Close();<br />this.pictureBox1.Image<br />二. C#中byte[]与string的转换代码<br />1、System.Text.UnicodeEncoding converter = new Sys转载 2010-11-20 20:16:00 · 623 阅读 · 0 评论 -
用MD5加密
1 加密字符串: public static string Hash(string toHash) { MD5CryptoServiceProvider crypto = new MD5CryptoServiceProvider(); byte[] bytes = Encoding.Default.GetBytes(toHash); bytes = crypto.ComputeHash(bytes); StringBuilde原创 2010-11-18 23:58:00 · 718 阅读 · 0 评论 -
异步调用委托
BeginInvoke方法可以在容纳一个函数引用的委托上被调用。BeginInvoke把该函数操作添加到一个线程队列中,该函数在公共语言运行时(CLR)线程池的一个线程池上被异步调用。BeginInvoke的语法如下:IAsyncResult BeginInvoke(arguments,AsyncCallback callback,object asyncState)BeginInvoker 的参数是在该委托的函数引用的参数上加上一个AsyncCallback参数和一个object参数。callback参数原创 2010-11-16 20:00:00 · 1866 阅读 · 0 评论 -
params 关键字
<br />params 关键字是参数修饰符,它指示目标参数是可变长度的一维数组。通过扩展该关键字可以定义一个可变长度的参数列表。用于表示类型相同,但参数数量不确定的函数中。<br />关于参数数组,需掌握以下几点。 <br /> (1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后; <br /> (2)参数数组必须是一维数组; <br /> (3)不允许将params修饰符与ref和out修饰符组合起来使用; <br /> (4)与参数数组对应的实参可以是同一类型的数组名,也可以是原创 2010-11-16 10:25:00 · 978 阅读 · 0 评论 -
C# 命名规则
1 命名空间,类,方法,以及基类上的成员应使用Pascal规则命名。 Pascal规则是:第一个字母必须大写,并且后面的并发连结词的第一个字母均为大写,例如象GeneralManager、SmallDictionary、StringUtil都是合乎这种规则的类名.如:public class Test{ public void DataBind() { }}2 局部变量和方法中的参数用camel规则命名,并添加数据类型前缀。 camel规则是:第一个子串外的所有子串的第一个字原创 2010-12-27 21:49:00 · 1471 阅读 · 0 评论 -
统计文本行
<br />需要统计一个串或一个文本中的文本行数<br />利用正则表达式来匹配换行符,实现统计<br /> public static long LineCount(string source, bool isFileName) { if (source != null) { string text = source; if (isFileName)原创 2010-12-19 20:18:00 · 527 阅读 · 0 评论 -
C# 操作RAR:压缩,解压
<br />using System;using System.Collections.Generic;using System.Text;using System.IO;using Microsoft.Win32;using System.Diagnostics;namespace Uni.UniCustoms{ public class clsWinrar { /// <summary> /// 是否安装了Winra转载 2010-12-15 13:13:00 · 745 阅读 · 0 评论 -
找出字符在串中的所有出现
<br />在循环中使用IndexOf来确定一个字符出现多少次,并明确分别出现在串中的什位置。<br />1 使用ist<int>来保存找到的字符串的位置,最后一个为找到的字符串的总数<br />public static int[] FindAllOccurrences(char matchChar, string source, int maxMatches, bool caseSensitivity) { List<int> occurrences = ne原创 2010-12-12 22:00:00 · 529 阅读 · 0 评论 -
创建定制枚举器
<br />若要为类增加foreach支持,可在类中增加一个迭代器,即在类中实现IEnumerable接口。<br />必须实现IEnumerator<T> GetEnumerator()方法。<br />namespace testIEnumberable{ class Program { static void Main(string[] args) { Container <int> cntnr=new Contai原创 2010-12-09 22:07:00 · 553 阅读 · 0 评论 -
不经过第三变量,两个数交换问题
总结了一下,不经过第三个变量,实现两个数交换的方法,其实原理都大同小异。class Program { static void Main(string[] args) { int a = 8, b = 2; Program.exchange1(ref a, ref b); Console.Write("a:{0},b:{1}", a, b); } pri原创 2012-04-10 19:44:28 · 781 阅读 · 0 评论