摘要: 前面双节讲了关于Encoding的一些概念及简单应用,需要回顾的朋友们可以点下面的链接。今天这一节主要讲一下Encoder和Decoder。C# 小叙 Encoding (一)C# 小叙 Encoding (二)关于Encoder和Decoder从字面意思上理解就是编码和解码,CLR有类似的,像UrlDecode()和UrlEncode()是对URL中的参数解码编码一样。Encoder,Decoder这两个是用来字符和字节之间的编码和解码的,是两个类型,而且还是抽象的,所以我们不能直接实例化它,但是目前CLR中给我们使用的类型中没有它们的派生类,不过CLR内部实现里肯定有它们的派生类。比如说下 阅读全文
posted @ 2012-08-08 16:39 哭过的天空 阅读(24409) 评论(6) 推荐(4) 编辑
摘要: Encoding用法Encoding用法比较简单,如果只是字节和字符的互相转换,GetBytes()和GetChars()这两个方法及它们的重载基本上会满足你所有要求。GetByteCount()及其重载是得到一个字符串转换成字节时实际的字节个数。GetCharCount()及其重载是得到一个字节数组转换成字符串的大小。要注意这两个方法:int GetMaxByteCount(int charCount); int GetMaxCharCount(int byteCount);它并不是你期望的那样,如果是单字节就返回charCount,如果是双字节就返回chartCount*2,而是chart 阅读全文
posted @ 2012-08-07 17:12 哭过的天空 阅读(9337) 评论(3) 推荐(5) 编辑
摘要: 前言 众所周知计算机只能识别二进制数字,如1010,1001。我们屏幕所看到的文字,字符都是和二进制转换后的结果。将我们的文字按照某种规则转换二进制存储在计算机上,这一个过程叫字符编码,反之就是解码。目前存在多种字符编码方式,一组二进制数字根据不同的解码方式,会得到不同的结果,有时甚至会得到乱码。这也就是为什么我们打开网页时有时会是乱码,打开一个文本文件有时也是乱码,而换了一种编码就恢复正常了。CLR中的所有字符都是16位Unicode来表示的。CLR中的Encoding就是用于字节和字符之间的转换的。更多字符编码知识请参考,字符集和字符编码(Charset & Encoding)关于 阅读全文
posted @ 2012-08-07 09:51 哭过的天空 阅读(31719) 评论(5) 推荐(5) 编辑
摘要: 1 /** 2 * 分钱单算法 3 4 1.有6个员工,每个人的工资是2000到5000不等,并且有零头; 5 【1】2104 6 【2】2320 7 【3】3450 8 【4】4520.1 9 【5】4876.310 【6】4995.911 2.财务发现金,现求出共要发多少现金,100元、50元、20元、10元、5元、2元、1元、5角、2角、1角分别为多少?(分不记)12 3.规则要求,按大面额现金最优发放。13 * */14 class Program15 {16 static float[] salary = { 2104, 2320, 3450, 4520.1f, 4876.3f, . 阅读全文
posted @ 2011-06-29 16:09 哭过的天空 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 一个获得方法名的方法,depth表示调用此方法的回溯深度。比如,A方法调用B方法,B方法调用GetCurrentMethodFullName(2),那么得到的结果是A方法的全名(namespace+class名+method名)若要获得当前方法,depth应为0 internal static string GetCurrentMethodFullName(int depth) { try { StackTrace st = new StackTrace(); string methodName = st.GetFrame(depth).GetMethod().Name; string cla 阅读全文
posted @ 2011-01-17 17:06 哭过的天空 阅读(1477) 评论(0) 推荐(0) 编辑
摘要: .NET 类所使用的释放未托管资源的两种方式:1、利用析构函数,此方法有很多问题2、实现IDisposable接口,但需要确保执行Dispose()方法最好的情况是执行这两种机制,获得这两种机制的有点,克服其缺点。假定大多数程序员都能正确调用Dispose()方法,同时把析构函数做为一种安全机制,确保在没有调用Dispose()的情况下也能释放掉资源。Public class Resourceholder:IDisposable{ Private bool isDisposed=false; Public void Dispose() { Dispose(true); GC.SuppressF 阅读全文
posted @ 2011-01-14 13:48 哭过的天空 阅读(2014) 评论(3) 推荐(0) 编辑
摘要: string path = @"C:\Program Files"; System.Diagnostics.Process.Start("explorer.exe", path); 阅读全文
posted @ 2010-09-16 14:51 哭过的天空 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 原贴地址:http://www.shehui001.com/map.asp?pid=1038关键字:多线程-线程同步描述:关于.net中线程的基本应用可以参考《C#3.0核心技术》中多线程的第一部分,但线程同步方面的最好参考仍然是Jeffrey的《Windows核心编程》,其中不仅有详细的介绍,还有经典范例代码。前言关于.net中线程的基本应用可以参考《C# 3.0核心技术》中多线程的第一部分,但... 阅读全文
posted @ 2010-07-28 15:02 哭过的天空 阅读(3068) 评论(0) 推荐(0) 编辑
摘要: 下表列出了在 Win32 API(在 Wtypes.h 中列出)和 C 样式函数中使用的数据类型。许多非托管库包含将这些数据类型作为参数传递并返回值的函数。第三列列出了在托管代码中使用的相应的 .NET Framework 内置值类型或类。某些情况下,您可以用大小相同的类型替换此表中列出的类型。 Wtypes.h中的非托管类 非托管 C 语言类型     托管类名            说明 ha... 阅读全文
posted @ 2010-07-09 17:20 哭过的天空 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 网上有好多这类的文章,大部分都是用C/C++写的,也有部分C#写的,都思想都是一样的,调用win32 API。至于什么是内存映射文件,相信还是有好多人不知道是怎么一回事的,我也是偶然看window 核心编程了解到的。 C# 读取大文件的方法也是用的用StreamReader一次读出来,再用MemoryStream放在内存,再用StreamReader一行行的读出来,速度也挺快的,16M的文本大概也... 阅读全文
posted @ 2010-06-13 15:33 哭过的天空 阅读(30815) 评论(7) 推荐(5) 编辑