泛型委托实际上就是一个.NET Framework预定义的委托,基本涵盖了所有常用的委托,所以一般不用用户重新声明啦. 很简单,看下面简单的小例子: //void method(); Action test1 = () => { Console.WriteLine("void method();"); }; //void method(x); Action<int> test2 = (x) => { Console.WriteLine("void me…
Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some may include more than one window. A window object has several responsibilities: 每个iOS应用程序需要至少一个窗口---UIWindow类的一个实例---有些可能有不止一个窗口.窗口对象的任务是: It contains…
1.泛型 基于泛型,我们可以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型, 确保类型安全. 1)总是优先考虑泛型 优点:可重用性,类型安全,高效率. 2)避免在泛型类中声明静态成员 T指定不同的数据类型,MyList<T> 相应的也变成了不同的数据类型,在他们之间不共享静态成员.但是,若T 所指的数据类型一致,那么两个泛型对象间还是可以共享静态成员的. 3) 为泛型设定约束 “约束” 这个词可能会引起歧义,有些人可能认为对泛型参数设定约束是限制参数的使用,实…
第3章 函数 3.1 什么是函数 函数:本质是一种代码的分组形式.函数的声明如下: <script type="text/javascript"> /*函数的声明组成:function关键字.函数名称如sum.参数. 函数体(执行的代码块).return子句*/ function sum(a,b){ return a+b; } </script> 3.1.1 调用函数 调用函数的方式:在函数名后面加一对用以传递参数的括号.如调用如上sum()函数. > v…
C#泛型总结 C#中的所谓的泛型程序设计和C++中相应的模版类似. 泛型方法 C#中的泛型方法是指使用了类型参数的方法成员,案例: static void Main(string[] args) { int a=1; int b=2; Swap<int>(ref a,ref b); //Swqp(ref a,ref b);效果和上面一句相同 Console.WriteLine("a = {0},b = {1} ",a,b); } public static void Swa…
1.匿名方法的概念:一个方法没有具体的名称,而只有关键字delegate.方法参数.方法体.这种方法是匿名方法. 匿名方法的好处:将具体方法和委托直接关联在一起,如果我们基于委托只需要一个方法的时候,匿名方法肯定显得简单. 2.Lambda表达式:在C#3.0出现的.使用这种表达的可以更简练的编写代码块. CalculatorDelegate cal3 = (int a, int b) => { return a + b; }; CalculatorDelegate cal4 = (a, b)…
泛型委托: namespace 泛型委托 { public delegate void Mydelegate<T>(T msg); class Program { static void Main(string[] args) { //Mydelegate<int> myDelgate = M1; //M1(5); Mydelegate<string> mydelgate = M4; M4("abcd"); Console.ReadKey(); }…
以前都是自己写委托,其实系统内部给我们系统了委托的. Action ——委托的非泛型版本就是一个无参数无返回值的委托. Action<T>——委托的泛型版本是一个无返回值,但是参数个数及类型可以改变的委托.  Func<T>——委托只有泛型版本的,接受参数个数可以是若干个,也可以没有参数,但是一定要有返回值 class Program { //定义委托 //public delegate void adddelegate(); static void Main(string[] a…
最近看了一些有关 libuv 的东西,另外复习了一些与同步.异步.阻塞.非阻塞,异步IO(aio)的东西, 算是技术积累吧,等有时间了整理出一个完整的文档出来,希望在今后的编程中用到. 不多说了,本文是今后几篇<libuv 中文编程指南>的前言,先介绍下 libuv 究竟是干什么的吧,看看 开源中国社区收录的有关 libuv 的介绍, libuv 是 Node 的新跨平台抽象层,用于抽象 Windows 的 IOCP 及 Unix 的 libev.作者打算在这个库的包含所有平台的差异性. 特性…
泛型结构 泛型结构和泛型类几乎是一直的,只是泛型结构没有继承的特性..NET平台提供的一个泛型结构是(可空类型)Nullablle<T>.可空类型的引入,主要是为了解决数据库语言中的数字与编程语言中的数字的区别(数据库中数字可以为空,编程语言中数字不可为空).因为Nullable<T>使用过于的繁琐,于是就引入了一种特殊的语法,使用个”?”运算符.例: int? x1; Nullable<int> x2; x1和x2这两种方式定义是等价的. 非空类型可以转化为可空类型.…