随笔分类 - C#
摘要:yield 关键字yield:在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。迭代器块有两个特殊语句: ●yield return <expression_r_r_r_r>; ●yield break; 迭代器块 迭代器块是有一个或多个yield语句的代码块。下面三种类型的代码块中的任意一种都可以是迭代器块: ■方法主体 ■访问器主体 ■运算符主体 yield语句只能出现在迭代器块中,该块可用作方法、运算符或访问器的体。这类方法、运算符或访问器的体受以下约束的控制: ■不允许不安全块。 ■方法、运算符或访问器的参数不能是 ref 或 out。 ■yield语句不能出现...
阅读全文
摘要:在我们平常编程中,时间久了有时候会形成一种习惯性的思维方式,形成固有的编程风格,但是有些地方是需要斟酌的,即使是一个很小的错误也可能会导致昂贵的代价,要学会善于总结,从错误中汲取教训,尽量不再犯同样错误,注重编程之美,代码的优雅,总结几个平常经常犯的错误。1、在C#编程中,字符型类型是最容易处理出错的地方,代价是非常昂贵,在.Net Framwork中,字符串是一个相当特别的引用类型,string本省就是一个不可继承的密封类,但是它具有了值类型所应用的特点,但是它在CLR中内存还是保存于托管堆之上,也就是说,当我们每次定义一个字符串类型的时候,就在堆内存中开辟一端内存,而当我们字符串被修改之.
阅读全文
摘要:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。分层式结构究竟其优势何在?1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准...
阅读全文
摘要:声明:本文章源自园子老赵之手,个人做学习笔记之用,地址:http://www.cnblogs.com/JeffreyZhao/archive/2009/03/10/codetimer.html因为每次我们在在做性能比较的时候,都需要自己实例一个Stopwatch,感觉很麻烦,就在网上找到了这篇文章,作为一个实用工具,感觉值得收藏下,故整理下,留之后用,不废话,新建项目: static class CodeTimer { static CodeTimer() { //设置当前进程为最高优先级 Process.GetCu...
阅读全文
摘要:在.NET框架包含一个托管堆,所有的.NET语言在分配引用类型对象都要使用它,像值类型这样的轻量级别对象始终分配在栈中,但是所有的类实例和数组都被生成在一个内存池中,这个内存池就是托管堆垃圾收集器的托管的基本算法很简单:1、将所有的托管内存标记为垃圾2、寻找正在使用的内存快,并将他们标记为有效3、释放所有没有被使用的内存块4、整理堆以减少碎片看上去很简单,但是垃圾回收器实际采用的步骤和堆管理系统的其他部分并非微不足道,其中常常涉及为提高性能而作的优化设计。举例来说,垃圾收集遍历整个内存池具有很高的开销。然而,研究表明大部分在托管堆上分配的对象只有很短的生存期,因此堆被分成三个段,称作gener
阅读全文
摘要:文章转自:http://www.cnblogs.com/shenfengok/archive/2011/09/06/2169306.html 首先堆栈和堆(托管堆)都在进程的虚拟内存中。(在32位处理器上每个进程的虚拟内存为4GB)堆栈stack1、堆栈中存储值类型2、堆栈实际上是向下填充,即由高内存地址指向低内存地址填充3、堆栈的工作方式是先分配内存的变量后释放(先进后出原则)4、堆栈中的变量是从下向上释放,这样就保证了堆栈中先进后出的规则不与变量的生命周期起冲突5、堆栈的性能非常高,但是对于所有的变量来说还不灵活,而且变量的生命周期必须嵌套。6、通常我们希望使用一种方法分配内存来存储数据,
阅读全文
摘要:特性(attribute)是被指定给某一声明的一则附加的声明性信息。在C#中,有一个小的预定义特性集合。在学习如何建立我们自己的定制特性(custom attributes)之前,我们先来看看在我们的代码中如何使用预定义特性。using System;public class AnyClass{ [Obsolete("Don't use Old method, use New method", true)] static void Old( ) { } static void New( ) { } public static void Main( ) { ...
阅读全文
摘要:2 [C#] 200 连接数据库方法收集 "Connect Timeout=30":连接超时时间为30秒. 在这里,建立连接对象用的构造函数为:SqlConnection. -------------------------------------------------------------------------------- 3.C#连接Oracle 程序代码: -------------------------------------------------------------------------------- using System.Data.Orac
阅读全文
摘要:首先在硬盘中将所有有关的资料融合到一个文件夹中,这将大大方便后期的制作。然后启动"Easy CHM"软件到如图1所示主界面,寥寥无几的几个功能按键,首先就消除了我们"制作会不会太繁锁"的顾虑。图11、导入所需目录及文件怎么开始?自然是先新建一个制作任务。在快捷工具栏单击"新建"按钮;然后在弹出的"新工程目录"中单击"浏览"按钮导入硬盘目录文件,此步骤的意义在于自动将指定文件夹中的所有文件导入到软件制作窗口中,批量导入的好处就是方便快捷,不需要一个一个的去找。当然也可在"新工程目录&qu
阅读全文
摘要:定义接口成员接口可以包含一个和多个成员,这些成员可以是方法、属性、索引指示器和事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。接口定义创建新的定义空间,并且接口定义直接包含的接口成员定义将新成员引入该定义空间。说明:· 接口的成员是从基接口继承的成员和由接口本身定义的成员。· 接口定义可以定义零个或多个成员。接口的成员必须是方法、属性、事件或索引器。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。· 定义一个接口,该接口对于每种可能种类的成员都包含一个:方法、属性、事件和索引器。·
阅读全文
摘要:1、C#接口的作用 :C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识到接口的作用的时候就觉得用接口是多此一举,当然你这样想那是绝对绝对错误的,比尔盖茨的微软请的员工都是比盖茨还聪明的人,他们的C#能添这样的多足吗?!关于接口的作用,网上有一位就真的深入浅出给我们做了很好理解的分析。 我们定义一个接口public interface IBark{ void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public cla...
阅读全文
摘要:编辑器加载中...///<summary>///这个类所能实现的功能只要是学习接口的定义、这边有几个知识的需要指出:///<1> 子接口继承父接口的接口时,必须实现父接口所有的函数及定义类型///</summary> interface I_1_A //声明一个接口,这里面包含一个属性A { int A { get; set; } } interface I_2_B //声明第二个接口,这里面包含一个方法Count { int Count(int i, int j); } interface I_2_C : I_1_A,...
阅读全文
摘要:/// <summary>///这个是第二个接口的引用,<1> 外部对接口的访问,如果出现同名的参数或者方法,必须的指出他的父接口,即必须为显示的调用///<2> 特别是在不清楚具体情况的前提下,最后是做的保守一点/// </summary> public interface I_3_A//此处定义一个接口包含一个方法J,一个属性Count { int Count { get; set; } int J(int j);}public interface I_3_B //这里面也定义第二个接口包含一个方法Count,一个属性J,但注意这和上一个接口
阅读全文
摘要:// <summary> ///这个实例主要介绍类中对多种继承中的成员访问的问题,,在介绍接口的同时不得不提一提,接口的应用在多层的调用中,为了保证底层的类的实现。必须分好层次。防止“接口污染” ///</summary>public interface I_4_A //定义接口、包含一个方法F{ string F(string A);}public interface I_4_B : I_4_A{ new string F(string A); //此方法是对基接口中的方法重写的方法。在不影响基接口中方法的实现的话,可以在同样的方法前面加上一个new的关键字来实现方法
阅读全文
摘要:using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;/* 这个案例主要讲解:<1> 显示的调用接口中的方法
阅读全文
摘要:using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;/* 这个案例主要人任务是介绍。接口中方法的重写及覆盖的等方法,这
阅读全文
摘要:本案例主要讲解是虚函数和接口的应用的方法,但是在这里牵扯到很多的知识点,是一个综合性的例题,案例如下:using System; using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;usi
阅读全文
摘要:1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取当前分 int 分=currentTime.Minute; 1.7 取当前秒 int ...
阅读全文
摘要:1.静态类与非静态类 ●.静态类中只能包含静态成员和静态方法,否则会抛出编译错误; 而非静态类中可以包含非静态成员和非静态方法,也可以包含 静态成员和静态方法; ●.静态类不可以实例化;非静态类可以实例化。不管是静态类还是 非静态类,对于静态成员和静态方法的调用都必须通过类来实现; ●.如果一个类只包含静态成员和静态方法,应该将该类标记为static, 并提供私有的构造函数来避免实例创建,其实这个也是单件模拟的体现; 2静态构造函数与实例构造函数 静态构造函数,用户初始化类中的静态成员,包括静态字段和静态属性。 静态构造函数不能参参数、不能有访问修饰符也不能为调用,通常由...
阅读全文