C# 进阶
yang_B621
后天的努力改变生活!When life gives you lemons,make lemonade.
展开
-
C# 进阶(一)Lambda 表达式
Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数。通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。若要创建 Lambda 表达式,需要在 Lambda 运算符 => 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。例如,lambda 表达式 x => x ...原创 2018-09-22 17:36:49 · 293 阅读 · 0 评论 -
C# 依赖注入(二)
2 探究依赖注入2.1 故事的启迪我们现在静下心来,再回味一下刚才的故事。因为,这个故事里面隐藏着依赖注入的出现原因。我说过不只一次,想真正认清一个事物,不能只看“它是什么?什么样子?”,而应该先弄清楚“它是怎么来的?是什么样的需求和背景促使了它的诞生?它被创造出来是做什么用的?”。回想上面的故事。刚开始,主要需求是一个打怪的功能。小李做了一个初步面向对象的设计:抽取领域场景中的实体(...转载 2018-09-11 14:33:42 · 340 阅读 · 0 评论 -
C# 依赖注入(一)
1 IGame游戏公司的故事1.1 讨论会话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作&角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的武器不同,攻击效果也不同。这天,IGame公司的开发小组正在开会对打怪功能中的某一个功能点如何实现进行讨论,...转载 2018-09-11 14:32:03 · 1455 阅读 · 0 评论 -
C# --反射详解
反射定义 反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。【MSDN】使用场景需要访问程序元数据的特性。 检查和实例化程序集中的类型。 在运行时构建新类型。使用System.Reflection.Emit中的类。 执...转载 2019-02-14 11:54:22 · 897 阅读 · 0 评论 -
C# 索引的作用和实现
官方描述:索引器允许类或结构的实例就像数组一样进行索引。索引器形态类似于,不同之处在于它们的取值函数采用参数。这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象有些资源等,能让类具有类似数组行为也是非常有用的。大致结构:<modifier><return type> this [argument list]{get{//读}...原创 2019-03-05 10:57:53 · 2702 阅读 · 0 评论 -
C#高级教程 -- 特性
C# 特性(Attribute)特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义...原创 2019-02-28 10:40:38 · 225 阅读 · 0 评论 -
C#高级功能(四)扩展方法和索引
扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 仅当你使用 using 指令将命名空间显式导入到源代码中之后,扩展方法才位于范...原创 2018-09-22 17:53:53 · 270 阅读 · 0 评论 -
C#进阶(三)Action、Func,Tuple
Action和Func委托实际上就是一个.NET Framework预定义的委托,3.5引入的特性。基本涵盖了所有常用的委托,所以一般不用用户重新声明。Action系列泛型委托,是没有返回参数的委托,最多可以有16参数,也可以没有参数;Func系列的委托是有返回值的委托,最多可以有16个参数;元组是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本。元...原创 2018-09-22 17:48:37 · 265 阅读 · 0 评论 -
C# 进阶 (二)LINQ和Enumerable 类
介绍LINQ之前先介绍一下枚举器Iterator:枚举器如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的。我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整型,这个整型用于记录数组中已经添加了多少字符串。构造函数将对数组进行初始化并使用传递进来的参数填充它。/// <summ...原创 2018-09-22 17:43:40 · 927 阅读 · 0 评论 -
C# 泛型详解
C# 泛型(Generic)泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。泛型的好处不用多说,在.NET中我看到有很多技术都是以泛型为基础的,不过因为不懂泛型而只能对那些技术一脸茫然。泛型主要用于集合类,最主要的原因是它不需要装箱拆箱且类型安全。您可以通过数据类...原创 2019-03-05 17:36:48 · 626 阅读 · 0 评论