程晓晖

博客园 首页 新随笔 联系 订阅 管理

文章分类 -  c#基础

摘要:C# .net 多线程中集合数据同步(转) 集合类通常不是线程安全的,多个阅读器可以安全的读取集合.但是对集合的任何修改都将为访问集合的所有线程生成不明确的结果.使用以下任何方法都可以令集合类是线程安全的 (1) 使用Synchronized 方法,则从该类派生包装,并通过该包装以独占方式访问集合 阅读全文
posted @ 2016-07-15 11:18 fumen 阅读(420) 评论(0) 推荐(0)

摘要:作为多线程和并行计算不得不考虑的问题就是临界资源的访问问题,解决临界资源的访问通常是加锁或者是使用信号量,这个大家应该很熟悉了。 而集合作为一种重要的临界资源,通用性更广,为了让大家更安全的使用它们,微软为我们带来了强大的并行集合:System.Collections.Concurrent里面的各位 阅读全文
posted @ 2016-07-15 10:40 fumen 阅读(16000) 评论(0) 推荐(2)

摘要:转自:.NET平台开源项目速览(2)Compare .NET Objects对象比较组件1.Compare .NET Objects介绍Compare .NET Objects组件是.NET平台用于深入比较2个.NET对象的开源组件,一直在更新,主要功能如名字所示就是深入比较2个.NET对象,是否相... 阅读全文
posted @ 2015-06-01 11:15 fumen 阅读(297) 评论(0) 推荐(0)

摘要:开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编解码器,方便阅读文章的同时来实验。 一. B... 阅读全文
posted @ 2014-09-02 11:43 fumen 阅读(36182) 评论(2) 推荐(7)

摘要:前言在使用 Linq toEntity 的時候,會把之前 Linq to SQL 的想法就帶進去,寫好之後編譯也都不會出錯,但是實際上在跑的時候就會出現錯誤訊息了,這點真的要注意了。這次我遇到問題的時候就是時間相減的時候發生 的,希望本篇對於遇到問題的朋友有點幫助囉!說明先看看測試資料表的結構接下來建立一個Entity ,這部份就不多加解釋怎麼建Entity 了。現在我想查出結束時間和起始時間差距一天以上的資料,很自然的寫出下面的程式碼:C#var data = db.Test.Where(X => (X.endtime - X.starttime).Days > 1).ToLis 阅读全文
posted @ 2013-10-14 14:33 fumen 阅读(4052) 评论(2) 推荐(1)

摘要:http://blogs.msdn.com/b/nikhiln/archive/2008/05/18/net-2-0-symmetric-encryption-code-sample.aspx 阅读全文
posted @ 2011-06-20 19:56 fumen 阅读(174) 评论(0) 推荐(0)

摘要://int? temp =5;// int a = (int)temp; //5 //int a = Convert.ToInt32(temp);//5int? temp = null;int a = (int)temp; // 报错int a = Convert.ToInt32(temp);//0 阅读全文
posted @ 2011-03-31 00:30 fumen 阅读(139) 评论(0) 推荐(0)

摘要:Tips:使用System.Collections.Generic对象去除数组中的重复值本例只是使用.net类别库解决开发问题不涉算法问题在使用.net 2.0开发邮件系统时,须要能去除收件者等输入值的重复值。所以想到使用System.Collections.Generic对象中IndexOf()协助处理Code://取得字符串数组char[] charSeparators = new char[] { ',', ';' };string[] originalData = originalMailList.Split(charSeparators, String 阅读全文
posted @ 2011-03-23 00:21 fumen 阅读(421) 评论(0) 推荐(0)

摘要:我们知道System.ComponentModel命名空间下有个名为DescriptionAttribute的类用于指定属性或事件的说明,我所调用的枚举值描述信息就是DescriptionAttribute类的Description属性值。 首先定义一个枚举/**////<summary>///测试用的枚举///</summary>publicenumArticleTypeList{[DescriptionAttribute("中国软件开发网络")]csdn,msdn,[DescriptionAttribute("博客园")]cn 阅读全文
posted @ 2011-03-10 18:24 fumen 阅读(4666) 评论(0) 推荐(0)

摘要:有一数组;转换为字符串后为 aaa|bbb|ccc|ddd|现要去掉最后一个|第一种方法:语句为:str1=aaa|bbb|ccc|ddd|str=str1.substring(0,lastindecof("|"));respone.write(str);outprint:========================aaa|bbb|ccc|ddd第二种方法:str1=aaa|bbb|ccc|ddd|str=str.endTrim('1')//记得一定是‘号因为 endtrim方法的参数为char;第三种方法:str1=aaa|bbb|ccc|ddd|str=str1.remov 阅读全文
posted @ 2011-02-17 23:17 fumen 阅读(25922) 评论(0) 推荐(2)

摘要:http://www.cnblogs.com/xiangyun/archive/2010/09/07/1820944.html 阅读全文
posted @ 2011-01-26 20:30 fumen 阅读(323) 评论(0) 推荐(0)

摘要:implicit关键字用于声明隐式的用户定义类型转换运算符。(explicit反之)static implicit operator target_type { source_type identifier }隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为可以在未指定的情况下发生隐式转换,因此必须注意防止令人不愉快的后果。一般情况下,隐式转换运算符应当从不引发异常并且从不丢失信息,以便可以在不知晓的情况下安全使用它们。如果转换运算符不能满足那些条件,则应将其标记为 explicit。 下边是在网上找的几个简单例子例1class Digit { public Digit(d 阅读全文
posted @ 2010-12-22 21:31 fumen 阅读(11810) 评论(2) 推荐(2)

摘要:转自http://hi.baidu.com/brady_home/blog/item/53a36809d68780aa2fddd467.html一、泛型简介1.1泛型通过使用泛型,可以创建这样的类、接口和方法,它们以一种类型安全的工作方式操作各种数据。本质上,术语“泛型”指的是“参数化类型”(parameterized types)。参数化类型非常重要,因为它们可以在创建类、接口、方法和委托的时候将要操作的数据类型作为参数进行指定。通过泛型,可以创建一个类,使其自动处理不同类型的数据。使用参数化类型的类、接口、方法和委托都可以称为“泛型”。可以通过使用object类型的引用来创建通用的类、接口 阅读全文
posted @ 2010-12-17 14:53 fumen 阅读(10473) 评论(2) 推荐(6)

摘要:C#中使用GUID GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。” 1. 一个GUID为一个128位的整数(16字节),在使用唯一标识符的情况下,你可以在所有计算机和网络之间使用这一整数。 2. GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:337c7f2b-7a34 阅读全文
posted @ 2010-12-17 13:17 fumen 阅读(475) 评论(0) 推荐(0)

摘要:c#中switch()中可以有return;或(return 值)这种形式,跳出的是你自己写的方法 非switch() 阅读全文
posted @ 2010-11-04 10:11 fumen 阅读(1095) 评论(0) 推荐(0)

摘要:/resetuserdata 参数如果 Visual Studio 在运行时被损坏,且无法从损坏状态进行恢复,您可以使用此参数将 Visual Studio 重置到其使用之初的状态。这些问题的例子可能包括:窗口布局文件被破坏、菜单自定义文件被破坏,或者键盘快捷方式文件被破坏。免责声明:如果使用此参数,您将丢失所有的环境设置和自定义设置。出于这个原因,Microsoft 不公开支持使用此参数,而且也没有将这个参数公之于众(如果在命令提示行中键入 devenv.exe /?,您不会看到显示此参数)。如果遇到环境方面的问题,应该将这个方法作为不得已而为之的办法,并且确保在使用此参数前,已通过导出环境 阅读全文
posted @ 2010-11-02 10:05 fumen 阅读(632) 评论(0) 推荐(0)

摘要:string test = "程$晓$"; //数组长度为2 temp[0]="程" temp[1]="晓"; string[] temp = test.Split(new string[] { "$" }, StringSplitOptions.RemoveEmptyEntries);//数组长度为3 temp[0]="程" temp[1]="晓" temp[2]=""; string[] temp = test.Split(new string[] { "$" }, StringSplitOptions.None); 阅读全文
posted @ 2010-09-01 17:44 fumen 阅读(6691) 评论(1) 推荐(0)