摘要:public static void Find(string filter, Action<string> onSuccess, Action<Exception> onFail);这个方法可以用下面的代码来调用:其中:result 是string类型,ex 是 Exception类型Bingosoft.GDBM.Data.SysManager.DAL.SysNoticeDAL.Find(" and Data_Flag>0",(result) => { List<Bingosoft.GDBM.Data.SysManager.Enti
阅读全文
摘要:在系统中,我们可能会有很多自定义的事件,那么事件多了,就会定义很多的delegate,这会给代码可读性带来灾难。在.net中,我们可以继承EventArgs,并使用泛型来定义一个通用的参数类。 public class ParameterEventArgs<T> : EventArgs { public T Parameter { get; set; } }其中T可以是任意类型。类。如下使用:public event EventHandler<ParameterEventArgs<object>> ModuleCommand; protected void
阅读全文
摘要:在C#里有这样一些类型,它是作为临时储存数据的,生命周期只在这个方法内,方法结束了,这个类型的生命周期也没有了。那么这里我们就可以使用一个匿名类型。varKeyPair=new{Key=”yuyi”,Value=”20”};这个KeyPair就是一个匿名类型,注意KeyPair这里是一个变量名,并不是类的名字。嗯,前面还有一个var,这又是什么呢?这是C# 3.0里面的隐式局部变量。隐式类型局部变量还是先介绍一下隐式类型局部变量吧:在C# 3.0里多了一个关键字var,他表示这样的一种类型:C#编译器可以根据上下文推断的出来比如var I = 5;编译器可以根据后面的赋值推断的出来i应该是个整
阅读全文
摘要:http://www.cnblogs.com/chengxingliang/archive/2011/03/07/1974436.html后台CS代码中创建四种常用的动画效果【附带源码实例】
阅读全文
摘要:匿名方法相信很多人都听过,它是C#2.0的一个新特性,顾名思义,匿名方法就是没有名称的方法。那么在C#中的匿名方法有哪些好处,在C#中如何使用呢?匿名方法最明显的好处就是可以降低另写一个方法的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度,下面就通过一些使用例子来具体看看。1、在事件中使用匿名方法下面是一个定时器的小例子,我们常规的写法如下:常规写法Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->classEventTest
阅读全文
摘要:using System;class TestApp{ // Define a new class called 'System' to cause problems. public class System { } // Define a constant called 'Console' to cause more problems. const int Console = 7; const int number = 66; static void Main() { // Error Accesses TestApp.Console //Console.Wr
阅读全文
摘要:C#泛型编程转自:http://www.cnblogs.com/thcjp/archive/2006/08/27/487550.htmlhttp://www.cnblogs.com/kid-li/archive/2006/11/29/577045.html 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。例子代码:class Program { static voidMain(string[] args) { int obj = 2; Test<int> test = new Test<int>(obj);
阅读全文
摘要:Dictionary<string,int> things = new Dictionary<string,int>();things.Add(........);things.Add(........);第一种方式:可以使用Keys和values属性迭代集合中的键和值:foreach(string key in things.Keys){// ......}或foreach(int value in things.Values){//....}第二种方式:还可以迭代集合中的各个项,把每个项作为一个 KeyValuePair<K,V>实例来获取。foreac
阅读全文
摘要:转自http://www.cnblogs.com/guowenhui/archive/2011/10/25/2223275.html所谓泛型,即通过参数化类型实现在同一份代码上操作多种类型的数据,泛型编程是一种范式的转化(在这里体现为类型的晚绑定),他利用参数化类型,将类型抽象化,从而实现代码的灵活复用,精简代码。注:1.NET参数化类型不是编译(JIT编译)时被实例化,而是运行时被实例化。 2.由微软在产品文档中提出建议,所有的泛型参数名称都以T开头,这是作为一种编码的通用规范。在定义泛型时,可以对客户端代码在实例化类时用于类型参数的类型施加一些限制,如果客户端代码尝试使用某个约束所不允..
阅读全文
摘要:一。大家非常熟悉的在switch语句中,如果没有任何 case 表达式与开关值匹配,则控制传递给跟在可选 default 标签后的语句。如果没有 default 标签,则控制传递到 switch 以外二。用于泛型定义中在泛型类和泛型方法中,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型,如果 T 为值类型,则它是数值还是结构。下面详细说明一下。之所以会用到default关键字,是因为需要在不知道类型参数为值类型还是引用类型的情况下,为对象实例赋初值。考虑以下代码:class TestDefault<T> { public T foo() { T
阅读全文
摘要:?运算符可以使值类型为null 例如: int ?x = null;??运算符 (允许给可能等于null的表达式提供另一个值)例如:int y = x ?? 1;结果 y为 1,即当x为null时 返回 1即运算符右侧数据,反之返回运算符左侧数据(如果第一个操作数不是null,该运算符就等于第一个操作数,否则该运算符就等于第二个操作数) 说明:有时让值类型为null是很有用的(尤其是处理数据库时),泛型使用 System.Nullable<T>类型提供了使值类型为空的一种方式。例如:system.Nullable<int> nullableInt;int? nullab
阅读全文
摘要:迭代器概述迭代器是可以返回相同类型的值的有序序列的一段代码。迭代器可用作方法、运算符或 get 访问器的代码体。迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。有关更多信息,请参见 yield。可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在 foreach 语句中被客户端代码调用,如下所示:foreach(int x in SampleClass.Iterator2){}迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<T> 或 IEnumerato
阅读全文
摘要:IEnumerable 接口负责使用foreach循环。下面说明在foreach中,迭代集合collectionObject的过程如下:1.调用collectionObject.GetEnumerator(),返回一个 IEnumerator引用。这个方法可以通过IEnumerable接口的实现代码来获得,但这是可选的。2.调用所返回的IEnumerator接口的MoveNext()方法。3.如果MoveNext()方法返回true,就使用IEnumerator接口的 Current属性获取对象的一个引用,用于foreach循环.4.重复前面两步,直到MoveNext()方法返回false为止
阅读全文
摘要:索引符是一种特殊类型的属性,可以把她添加到一个类的定义中,一提供类似于数组的访问。在Card对象的Cards集合中添加索引符:public class Cards:CollectionBase{.....public Card this[int cardIndex]{get{ return (Card)List[cardIndex]; }set{ List[cardIndex]=value; }}}在访问索引符时,将使用对象名,后跟放在方括号中的索引参数(例如 Cards[0])。这段代码对List属性使用一个索引符.IList.List属性返回的是一个System.Object对象;简单的理
阅读全文
摘要:今天看了一下C#中接口的东西,发现对CollectionBase(为强类型集合提供抽象基类)中的具体实现原理不是很了解。经过查看一些资料,分析过后得到以下的初步认识。system.Collections.CollectionBase类主要显示的实现ICollection和IList接口和IEnumerable接口。但只提供了一些要求的执行代码,特别是IList的Clear()和RemoveAt()方法,以及ICollection 的 Count属性,如果要使用提供的功能,就需要自己执行其他代码。具体的显示接口实现,可以查看MSDN的相关资料。(注:ICollection主要是实现将自己的项目复
阅读全文