【WPF各种控件的使用 C#的进阶】教程文章相关的互联网学习教程文章

C# 泛型详解---进阶编程(七)

今天我们来学习在C#的泛型技巧,传统的课本都在讲解什么是泛型,然后列举一大堆代码示例告诉你什么是泛型,今天我们就来聊聊更加本质的东西,我为什么要用泛型?它是来解决什么问题的?底层原理是什么? 简单来说,泛型解决的是什么问题呢?算法重用和提升性能的。 最最经典的例子是什么?就是微软支持的List<T>类型,想必绝大多的程序员都是使用过这个类的。如果没有这个类,我们可以想象下,如果要你开发一个算法类,支持对数组...

C#进阶之WebAPI(三)【代码】

今天复习一下WebAPI的路由知识: 首先分析一下MVC路由和WebAPI路由的区别: 在mvc里,默认的路由机制是通过URL路径去匹配控制器和Action方法的,在mvc中的默认路由定义在App_Start文件夹下的RouteConfig.cs文件下:public class RouteConfig{public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}",def...

C#进阶学习第十一天【代码】

目录1.类型参数约束基类约束接口约束构造函数约束引用类型值类型约束组合约束2.泛型委托3.泛型接口4.泛型方法 1.类型参数约束 一共5种约束 基类约束 1.给T指定的类型必须是某个类类型或该类的子类类型 通过where给T添加约束 2.当指定基类约束后,T对象可以访问该基类中所有的共有的成员 3.只能指定一个基类 例: public class vector<T> where T :person { public void show(){ array[1].print()}//调用person里面的print...

C#进阶学习第十二天【代码】

目录1.可空类型2.空合并操作符3.匿名方法4.迭代器5.属性字段小注6.隐式类型7.对象初始化器8.集合初始化器 1.可空类型 1.值类型后面加? 表示可空类型,是一种特殊的值类型,可以赋值为null, int? nillabe = null; 2.引用类型后面不能加?因为本身就可以赋值为空 3.普通值类型 int a = null //报错!if (b.HasValue){ Console.WriteLine (b.Value);} //通过HasValue属性判断是否有值else{ Console.WriteLine ("dd");} ...

C#进阶学习第十三天【代码】

目录1.匿名类型2.Lanbda表达式 1.匿名类型 没有指明类型的类型,通过隐式类型和对象初始化器创建了一个未知类型的对象,减少了代码 1.定义匿名类型对象: 只能包含只读属性,不能修改var p = new{Name = "libiao",Age = 23};Console.WriteLine ("姓名:"+p.Name +"年龄:"+p.Age);2.定义匿名类型数组:var a = new [] { new{Name = "li",Age = 23},new{Name = "li",Age = 23},new{Name = "li",Age = 23},}; //类型保持一致foreach (...

C#进阶学习第十四天【代码】

目录1.扩展方法2.扩展方法查找规则3.可选实参4.命名实参5.泛型的可变性6.泛型的逆变性7.动态型(很少用) 1.扩展方法 1.用来扩展已经定义类型的方法成员。为现有的类型添加方法 2.在静态类中扩展方法,至少有一个参数,这个参数前加this, this后边是要扩展的类对象 3.不同的封闭泛型,扩展的方法也不一样//1.扩展自定义类的方法public class person{ public string Name {get;set;} public int Age {get;set;}public person(s...