会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
ByronGeek的学习屋
胜他人者有力,胜己者强
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
下一页
2014年3月13日
关于Visual Studio 2010卡死问题
摘要: Visual Studio 2010 SP1,操作系统是win7 x64版本。 在右键工具箱,点击“选择项”的时候,VS卡死重启。 解决方案: 在命令提示符中运行 devenv /ResetSettings 来重置用户设置,以消除潜在的相关设置问题。 执行之后,重新打开VS,问题解决。
阅读全文
posted @ 2014-03-13 10:37 ByronGeek
阅读(404)
评论(0)
推荐(0)
编辑
2014年1月23日
归并排序(C#实现)
摘要: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法。c#代码 1 public static void MergeSort(int[] inputAray, int first, int end) 2 { 3 if (first < end) 4 { 5 int midIndex = (first + end) / 2; ...
阅读全文
posted @ 2014-01-23 09:39 ByronGeek
阅读(3333)
评论(0)
推荐(0)
编辑
2014年1月22日
插入排序(C#实现)
摘要: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。插入排序包括:直接插入排序,二分插入排序,希尔排序等。直接插入排序: 1 private static void InsertSort(int[] inputArray) 2 { 3 for (int i = 1; i = 0; j--) 7 { 8 if (inputArray[j] > inputArray[record]) 9 ...
阅读全文
posted @ 2014-01-22 11:35 ByronGeek
阅读(243)
评论(0)
推荐(0)
编辑
2014年1月21日
快速排序(C#实现)
摘要: 快排是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。C#快排递归实现: 1 internal static void QuickSort(int[] inputArray, int lowIndex, int highIndex) 2 { 3 if (lowIndex >= highIndex) 4 { 5 ...
阅读全文
posted @ 2014-01-21 09:58 ByronGeek
阅读(1817)
评论(0)
推荐(0)
编辑
2014年1月20日
冒泡排序(C#实现)
摘要: 冒泡排序算法的思想如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.重复步骤1和2,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较C#实现: 1 internal static int[] BubbleSortMethod(int[] inputArray) 2 { 3 for (int ensureCount = 0; ensureCount inputArray[compar...
阅读全文
posted @ 2014-01-20 15:34 ByronGeek
阅读(224)
评论(0)
推荐(0)
编辑
CLR 学习笔记:程序集加载和反射(3)
摘要: 在获取一个Type之后,这个类型的成员可能包含字段,构造器,方法,属性,事件和嵌套类型。接下来就看说下如何查询一个类型的成员。1.发现类型的成员上一章提到了System.Reflection.MemberInfo类型,这是一个抽象基类,而我们的类型成员是从MemberInfo派生的一组类。具体的层次结构如下。 可以调用GetMembers方法,传入BindingFlags参数,然后返回由MemberInfo派生对象构成的一个数组。 1 Assembly assemblyFromPath = Assembly.LoadFile(@"E:\StrongNameDLL.dll")
阅读全文
posted @ 2014-01-20 12:18 ByronGeek
阅读(454)
评论(0)
推荐(0)
编辑
2014年1月19日
CLR 学习笔记:程序集加载和反射(2)
摘要: 前面介绍了程序集加载的一般方式,但是我们的目的往往并不是简单的载入程序集就结束了,我们还希望了解程序集包含了哪些类型,借助程序集的某些类型实现想要的功能等。下面就接着前一章的内容继续向下学习。 1.发现程序集中定义的类型。常用的方法是Assembly的GetExportedTypes1 Assembly assemblyFromPath = Assembly.LoadFile(@"E:\StrongNameDLL.dll");2 foreach (Type t in assemblyFromPath.GetExportedTypes())3 {4 if (t.GetT...
阅读全文
posted @ 2014-01-19 17:47 ByronGeek
阅读(334)
评论(0)
推荐(0)
编辑
2014年1月18日
CLR 学习笔记:程序集加载和反射(1)
摘要: 程序集加载和反射,实现了在编译时对一个类型一无所知的情况下,如何在运行时发现类型的信息,创建类型的实例以及访问类型的成员。显现的功能以及效果是十分强大的,比如使用第三方提供的程序集,以及创建动态可扩展应用程序。程序集加载:JIT编译器在将方法的IL代码编译成本地代码时,会查看IL代码中引用了哪些类型。在运行时,JIT编译器查看元数据表TypeRef和AssemblyRe,确定对应的程序集。在AssemblyRef表中,包含了构成程序集强名称的各个部分 —名称(无扩展名和路径),版本,语言文化和公钥。(StrongNameDLL, Version=1.0.0.0, Culture=neutral
阅读全文
posted @ 2014-01-18 13:16 ByronGeek
阅读(695)
评论(0)
推荐(0)
编辑
2013年10月23日
Effective C#:使用Conditional特性而不是#if条件编译
摘要: #if/#endif语句在日常编程中经常会被用到,尤其是想要基于同一份源代码生成不同的编译结果,eg.debug版和release版.但是我们经常遇到的情况是,#if/#endif成为一种习惯的时候,就会被无限制的滥用,代码进而难以理解或调试。所以,在需要编写条件代码块的时候,提倡使用Conditional特性代替#if条件编译。 #if条件语句 1.#if条件是存在于方法体内的,在方法实现的过程中,对应具体的条件限制,添加检查操作。 public void Func(){ string msg = null;#if DEBUG msg = GetDiagnosti...
阅读全文
posted @ 2013-10-23 11:22 ByronGeek
阅读(546)
评论(0)
推荐(0)
编辑
2013年10月17日
Effective C#:推荐使用is或as操作符而不是强制类型转换
摘要: C#是一种强类型的语言。在编程的过程中,我们都不可避免的会碰到类型转换的问题。这时,我们有两个选择:使用as操作符,或者使用强制类型转换。更保险的做法,首先使用is测试一下转换能否成功,然后再用as或强制类型转换。 正确的做法是,尽可能地使用as操作符,因为相当于强制类型转换来说,as更加安全,也更加高效。不过,as和is操作符都不会执行任何用户自定义的转换,它们仅当运行时类型符合目标类型时才能转换成功,也不会在转换时创建新的对象。 //Version one object castObj = Factory.GetObject();/...
阅读全文
posted @ 2013-10-17 11:02 ByronGeek
阅读(289)
评论(0)
推荐(0)
编辑
上一页
1
2
3
下一页
公告