随笔分类 -  微软C#

摘要:概述IEnumerable和IEnumerator接口存在的意义:用来实现迭代的功能! public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); }迭代的原理首先来说一下集合实现的原理:对于ArrayList、List等集合,类中有一个私有的数组类型字段,向集合中添加数... 阅读全文
posted @ 2013-12-14 20:33 武沛齐 阅读(808) 评论(0) 推荐(1) 编辑
摘要:User+strA:string+strB:string-sstrA:string#sstrB:string+GetResult():int表示:类。其中第一个行是类的名称,第二行是类中字段和属性,第三行类中的方法。 “+”表示public; “-” 表示Private;“#”表示Protected “:”后面表示返回值的类型User+strA:string+GetResult()表示:抽象类。类的名称如果是斜体,则表示抽象类。>IUser+GetResult():int表示:接口。接口还有一种表示方法:棒棒糖表示法。即:此时只有接口名称,接口中的方法体现在其实现类中!关系:1、... 阅读全文
posted @ 2013-10-08 17:51 武沛齐 阅读(869) 评论(0) 推荐(1) 编辑
摘要:Object model=Assembly.Load(“程序集”).CreateInstance(命名空间.类名);object obj2 = Type.GetType("MyClass").GetMethod("Add").Invoke(obj,null);obj2是返回值Activator.CreateInstance会调用dll中类的构造函数,如果你的类里面没有提供无参的构造函数Assembly_Assembly=Assembly.Load("程序集名");Type_Type=_Assembly.GetType("完整 阅读全文
posted @ 2013-10-08 17:41 武沛齐 阅读(984) 评论(0) 推荐(1) 编辑
摘要:之前在程序中用到事务时,都是在存储过程中创建事务来对数据进行控制,其实在C#中也有事务类。1、DbTransaction类对数据库访问添加事务,它是对数据库事务操作的基类,继承此类的有: System.Object System.MarshalByRefObject System.Data.Common.DbTransaction System.Data.EntityClient.EntityTransaction System.Data.Odbc.OdbcTransaction System.Data.OleDb.OleDbTransaction Syst... 阅读全文
posted @ 2013-10-08 17:38 武沛齐 阅读(578) 评论(0) 推荐(0) 编辑
摘要:1、在项目中新建XML文档结构.xsd文件,在其中添加相应的节点。 2、读取文档结构并写入内容 string initFileName = @"D:\Config.xml"; DataSet ds = new DataSet(); DataTable dt = new DataTable(); System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); ds.ReadXmlSchema(asm.GetManife... 阅读全文
posted @ 2013-08-28 12:41 武沛齐 阅读(524) 评论(0) 推荐(0) 编辑
摘要:在自定义的方法名上【右键】然后选择【创建单元测试】,之后在项目中就添加了一个单元测试的项目,找到对应的单元测试的方法[TestMethod()]特性修饰,将单元测试的方法中最后一句:Assert.Inconclusive("验证此测试方法的正确性。");删除,在测试方法中添加相应的参数,点击测试的方法名【右键】,运行测试即可 阅读全文
posted @ 2013-08-28 12:28 武沛齐 阅读(327) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/zhangpengshou/archive/2012/12/10/2811765.htmlhttp://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.htmlhttp://kb.cnblogs.com/page/99182/ 阅读全文
posted @ 2013-08-23 00:04 武沛齐 阅读(381) 评论(0) 推荐(0) 编辑
摘要:编译器在编译的时候,会事先分析所需要的静态字段,如果这些静态字段所在的类有静态的构造函数,则忽略静态字段的初始化,否则先进行静态字段的初始化。对类的静态成员初始化的顺序取决于在Main函数中的引用顺序,先引用到的先进行初始化,但如果类的静态成员的初始化依赖于其它类的静态成员,则会先初始化被依赖类的静态成员。而带有静态构造函数的类的静态字段,只有在引用到的时候才进行初始化。接下来,用实例来对以上的一段总结性的描述逐句分析:1、编译器在编译的时候,会事先分析所需要的静态字段,如果这些静态字段所在的类有静态的构造函数,则忽略静态字段的初始化,否则先进行静态字段的初始化。 ==无静态构造函数... 阅读全文
posted @ 2013-08-22 23:11 武沛齐 阅读(1226) 评论(0) 推荐(0) 编辑
摘要:MSDN上说: volatile关键字指示一个字段可以由多个同时执行的线程修改。声明为volatile的字段不受编译器优化的限制。这样可以确保该字段在任何时间呈现的都是最新的值。 volatile关键字可应用于以下类型的字段:引用类型。指针类型(在不安全的上下文中)。请注意,虽然指针本身可以是可变的,但是它指向的对象不能是可变的。换句话说,您无法声明“指向可变对象的指针”。类型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。具有以下基类型之一的枚举类型:byte、sbyte、short、ushort、int 或 uint。已知为引.. 阅读全文
posted @ 2013-08-22 22:45 武沛齐 阅读(699) 评论(0) 推荐(1) 编辑
摘要:lock关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。lock (xxx){ // Critical code section.}lock关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。 如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。用实例说话:例1新建多个线程,用多个线程的操作来模拟实现lock的场景public static void fun(){ Thread[] threads = new Thread[500]; User u = new User(); for (int i = 0;... 阅读全文
posted @ 2013-08-22 20:14 武沛齐 阅读(925) 评论(0) 推荐(0) 编辑
摘要:。。。 阅读全文
posted @ 2013-08-09 15:37 武沛齐 阅读(414) 评论(0) 推荐(0) 编辑
摘要:1、http://www.cnblogs.com/silverLee/archive/2009/11/04/1596053.html2、http://www.cnblogs.com/zhaoweiqiu/archive/2011/11/29/2267344.html3、http://bbs.csdn.net/topics/902062054、http://www.cnblogs.com/guothree2003/archive/2008/06/17/1224295.html总结: 1、String类型---->DateTime类型 a.Convert.ToDateTime();----. 阅读全文
posted @ 2013-07-20 23:15 武沛齐 阅读(491) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/niyw/archive/2010/09/20/1832077.html引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱。文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆;最... 阅读全文
posted @ 2013-06-25 22:04 武沛齐 阅读(690) 评论(0) 推荐(1) 编辑
摘要:转自:http://www.cnblogs.com/psunny/archive/2009/07/07/1518812.html深刻理解C#中资源释放今天我的一个朋友看到我写的那篇《C#中用AJAX验证用户登录》时,给我指出了点小毛病。就是在用户登录时,如果用户登录失败,在下面这段代码中,都会new... 阅读全文
posted @ 2013-06-25 22:00 武沛齐 阅读(757) 评论(0) 推荐(0) 编辑
摘要:要求: 1.要有联动性,老鼠和主人的行为是被动的。 2.考虑可扩展性,猫的叫声可能引起其他联动效应。我么能事件来一步一步来实现: 将要执行的老鼠逃跑,和主人惊醒的行为注册到事件中,猫叫之后引发事件的执行! 1、声明一个委托namespace ConsoleTest.MouseAndCat{ public delegate void Delegate();} 2、因为是由猫叫引发的事件执行,所有事件声明在猫类中namespace ConsoleTest.MouseAndCat{ public class Cat { public event Deleg... 阅读全文
posted @ 2013-06-25 18:45 武沛齐 阅读(2346) 评论(0) 推荐(0) 编辑
摘要:方法一、 protected int[] fun() { int[] b = { -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 }; int[] a = new int[17]; int min = 0; int max = 0; for (int i = 1; i b[i]) { min = i; } if (b[max] a... 阅读全文
posted @ 2013-06-25 12:00 武沛齐 阅读(666) 评论(0) 推荐(0) 编辑
摘要:首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 下面来看单例模式的结构图(图太简单了)从上面的类图中可以看出,在单例类中有一个构造函数 Singleton ,但是这个构造函数却是私有的(前面是“ - ”符号),然后在里面还公开了一个 GetInstan. 阅读全文
posted @ 2013-06-24 15:17 武沛齐 阅读(1689) 评论(0) 推荐(0) 编辑
摘要:1、实例化派生类时,会先执行父类的构造函数,然后再执行派生类的构造函数2、派生类重写父类中的虚方法后,如果实例化派生类,引发的执行父类的构造函数中有此虚方法,那么实际执行的是派生类中重写的方法,而不是父类中的虚方法例: public class A { public A() { Console.WriteLine("A类"); fun(); } public virtual void fun() { Console.WriteLine("父类中的方... 阅读全文
posted @ 2013-06-21 19:10 武沛齐 阅读(505) 评论(0) 推荐(0) 编辑
摘要:private static int fun(int m) { int temp = 0; for (int i = 1; i <= m; i++) { if (i % 2 == 1) temp = temp + i; else temp = temp - i; } return temp; } 阅读全文
posted @ 2013-06-21 18:54 武沛齐 阅读(514) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示