06 2018 档案
摘要:回顾之前的代码都是LINQ自行推断类型。其实LINQ在查询的结束是可以动态创建类型。 所谓的自动类型就是通过New关键字来创建。 像代码中的 则是自动创建成IEnumerable类型的 没事多练练这个,还是很方便的!!!!
阅读全文
摘要:大部分的LINQ的关键字都说了,最后说一下排序吧。 LINQ的是查询的利器。 那么查询就会有排序。 所有LINQ提供了两种简单的排序。倒序和默认排序。 关键字是: orderby ascending descending 熟悉SQL的同学可以退场了。如果看之前的LINQ,那么再加上SQL的知识。基本
阅读全文
摘要:目前说了 select group...by where from join on equal 这几个关键字,如果经过练习,熟练使用这几个关键字,大部分的LINQ查询基本都是可以完成的。 今天说一下let let的关键字是保存变量,或者子表达式的值,也可以创建一个变量。 下面一个简单的例子: 说白了
阅读全文
摘要:目前都是说的单数据差距,如果多数据进行查询LINQ该如何呢? 那么LINQ就应该使用关键字 join on equals 现有代码: see 字符串数组有6个元素,数字数组有10, 我想要查询符合字符串数组输出的最大数字数组的元素。 就是数字数组有多少是可以符合字符串数组的下标/索引 这里面 没有w
阅读全文
摘要:where作为LINQ的条件关键字。 where的右面是表达式 表达式可以方法返回值,但是where的右面最终是一个可检测真假的表达式 代码: 本代码中第一次表达式中使用了方法的返回值。 另外where可以出现多次,几乎是不限制位置。 但是除了select的后面或者group作为结尾的后面,因为他们
阅读全文
摘要:我们还是接着讨论一下group by 这一章节讨论group的本质:分组。 分组之后进行存储或者查询。 这个时候就要用一个新的关键字:into 这个之后就group就不作为结尾了。 必须重写另起select/group结尾。 解释: 7 into关键字将 分组存储到iLits 9 重新LinQ查询
阅读全文
摘要:前一章的代码LINQ都是以select结尾。 之前也说过可以group结尾。 那么怎么使用呢? 还是一样的条件,查询小于5大于0的元素 代码: LINQ的代码没有多少变化,但是输出的代码却变了。 为什么? 因为group 的类型推断变了。 现在变成:IEnumerable<IGrouping<>>
阅读全文
摘要:LINQ:语言集成查询 LINQ是C#中最为璀璨的明珠。 -ARM830 LINQ最大的功能是进行查询。 比如说查询某个集合中小于什么什么的。 如果不使用LINQ,多半都是用for,foreach什么的。 比如有数组 我要查询所有大于0,小于5的元素 不使用LINQ代码: 那使用LINQ该如何? 代
阅读全文
摘要:这么半天说了如何使用,实现接口。相信也都发现了接口和抽象类很多相似的地方。 但是! 这两个根本就是不一样的。 抽象类 : 接口: 可以实现代码【非抽象方法】 不可以实现任何代码 唯一继承 多次继承 继承会延续下去 继承只会存在与第一次继承 这个基本就是这两个最大的区别 那么 接口的实现和抽象类的重写
阅读全文
摘要:接口的实现方式。 接口的实现分两种: 1 显示实现接口 2 实现接口。 我们前面所得的接口的实现均为实现接口。也就是第二种方式。那么我们来来看第第一种实现方式: 可以看到 每一个属性/方法的前面都多了一个名字,都是自己所属的接口的名字。 所有显示实现接口的意思就是将接口的全称打出来。 这是为了什么呢
阅读全文
摘要:接口,顾名思义。 提供一个别的程序所能够使用本程序的沟通方法。 比如路由器的网线接口,电源插座 那么在编程中即为提供一个其他类能够访问的方法。 首先先看代码: 这就是一个接口的代码。 那么接口都有哪些特点呢: 1 接口是一个类型,不是类 2 接口不可以有实现的代码 3 接口内的所有的代码都是默认公共
阅读全文
摘要:上一章节说到 sealed 作用于类,那么sealed 作用到方法和成员上面该如何呢。 在C# 中 Sealed作用于方法必须是重写之后的方法。也就是override+sealed。在之后别的类在继承此类时就无法在重写这个方法。 比较绕。 换句说,如果你这个方法是重写的,那么继承此类时还可以重写。
阅读全文
摘要:到目前位置所说的都是让类如何如何进行继承啊 ,重写啊,巴不得类有十多个继承,超级多的重写。 但是,今天我们来说说不允许继承和不允许重写! 这个不允许继承是包括类和方法。 这种情况好比: 爸爸有私房钱,谁也不打算给。 爸爸给儿子5块钱零花钱,不允许儿子给别人或者给人别花。只允许给儿子。 这种情况下就是
阅读全文
摘要:抽象类和普通类有区别嘛?在继承的时候,还是只能继承一次父类嘛? 答案: 抽象类除了在抽象方法和属性上面不能实现具体的代码之外和普通类没有区别。依旧符合类的基本特征。所以在继承的时候抽象类也是属于基类,也就是只能继承一个基类。 下面的代码介绍了抽象类的基本特征:引用类型。
阅读全文
摘要:接上章: 抽象类中有抽象方法,那么可不可以有非抽象方法呢? 答案是可以的。 抽象类中实现非抽象方法的意义是什么? 都说了抽象类是一个抽象的,包括方法啊 属性啊,你给我一个非抽象的方法,哪抽象类的意义是啥啊? 还是重人这个抽象说起,说到人,你能想到人肯定能干什么,比如使用呼吸。 某些东西,这个抽象类不
阅读全文
摘要:接着上章说: 先看代码 如果仔细观察代码,我们会发现在子类中实现父抽象类的方法时,使用的是ovrride关键字,这个和多态中的重写是一个关键字,那么这两个是相同的嘛? 答案是不是的。 在多态中说了,重写是将继承链中重写的方法全部替换。 而抽象的重写则是实现方法。这个先是方法代码是不存在,在子类中实现
阅读全文
摘要:好多人将抽象类也作为多态的一种,其实我觉得并不是特别的好。 抽象在C#中是类的一种表现。 如果将类作为多态,那么前面所有的东西不就白费了吗? C#的 抽象很简单。 那就是抽象。 基本就是高度抽象。 那么什么是抽象呢? 比如说 人,人就是高度的抽象。你基本能想到的名词基本都可以说是抽象的。 C#的抽象
阅读全文
摘要:接上面讲 我们知道虚方法,和重写方法。 但是有没有发现 override和new的作用是差不多的。 但为什么还要单独写出来两个呢? 首先,咱们要明白一个问题,继承是具有线性传播的。 代码中,Son具有Father的方法,属性。换句话 Son使用的Father的方法。在Son的这个继承链上,使用new
阅读全文
摘要:说完了继承,说多态。 所谓多态,即为多样。很显然这个多态/多样不是生物学中的那个名词。不过还是可以往这上面靠靠。 在讲多态之前,让我们思考一下代码: emm 基本结论: 1 A,B两类都是继承NameList 2 A,B两类虽然继承NameList但是很少用到父类的方法。甚至还有写需要隐藏父类成员。
阅读全文
摘要:接上章: 这一章 我们来说说 继承的方法和方法隐藏。 我们来修改代码: 这个代码比较尬,主要是演示子类中的方法使用父类的方法。 A类的ShowType方法使用NameList的Show<T>(T type)方法。 实例化代码: 结果 上述代码主要是说子类调用父类的方法,使用Base关键字。当然父类的
阅读全文
摘要:接上章代码: 实例化: 上章 我们说过 实例化A类的时候先会实例化NameListlei,也就是先实例化父类,在实例化子类。而且还是隐式的。 那么显示是什么样子的呢? 我们来修改代码: 注意看A类,B类的 构造函数 这里 我们使用的Base关键字。 Base:父类,基类 使用方式有很多种,但是在子类
阅读全文
摘要:接着上章: 代码如下- 我们 来探讨一下 继承的类的使用 这个是A类的标准实例化方式。 结果: A类的启动顺序没有问题。 1,构造函数, 2,赋值 3 ID方法 没一点问题。 但是! 我们来思考一下,在NameList中的方法和属性都是需要实例化才能使用的 继承之后实例化子类【派生类【AB两个类就是
阅读全文
摘要:C# 是面向对象的高级编程语言。 继承是面向对象的特征之一。 所谓继承,字面意义。通俗而言 子承父业。 现有两个类 A,B二类,分别有两个字段,有两个方法,有两个构造函数。 这两个类实际意义没有多少。 但是记住,高级语言就因为面向对象才是高级语言。面向对象基本就是现实中的事务的高级抽象。 可以想象这
阅读全文