zoukankan      html  css  js  c++  java
  • za2

    程序集?生成后  一个exe,一个dll。 也可以是一个项目。

    vs 快速生成字段的代码段快捷键,快速生成构造函数,生成普通方法结构的快捷键

    *********************************

    new隐藏基类方法,主要目的是遵照里氏替换原则。父类和子类拥有同名的方法,但是2个方法无任何联系。 比如父类的wirte方法输出父类的所有属性,子类的方法输出另外个性定制的东西。

    问题来了,1.不用new 运算符照样输出的内容是一样的,调用各自的write方法输出的仍然和用new运算符一样的结果。

    2.为什么父类不用virtual,然后子类重写呢?   因为用来实现多态,new 会隐藏基类的方法,但是各自调用自己的方法。而override 是父类子类调用自己的方法。

    为什么用new运算符。

    里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。“抽象”是语言提供的功能。“多态”由继承语义实现。

    如此,问题产生了:“我们如何去度量继承关系的质量?”

    Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。

    该原则称为Liskov Substitution Principle——里氏替换原则。林先生在上课时风趣地称之为“老鼠的儿子会打洞”。^_^

    我们来研究一下LSP的实质。学习OO的时候,我们知道,一个对象是一组状态和一系列行为的组合体。状态是对象的内在特性,行为是对象的外在特性。LSP所表述的就是在同一个继承体系中的对象应该有共同的行为特征。

    这一点上,表明了OO的继承与日常生活中的继承的本质区别。举一个例子:生物学的分类体系中把企鹅归属为鸟类。我们模仿这个体系,设计出这样的类和关系。

    类“鸟”中有个方法fly,企鹅自然也继承了这个方法,可是企鹅不能飞阿,于是,我们在企鹅的类中覆盖了fly方法,告诉方法的调用者:企鹅是不会飞的。这完全符合常理。但是,这违反了LSP,企鹅是鸟的子类,可是企鹅却不能飞!需要注意的是,此处的“鸟”已经不再是生物学中的鸟了,它是软件中的一个类、一个抽象。

    new 和 override 的区别。  (都针对将子类实例赋值给父类 或者 子类调用哪个方法)

    答:1. new 隐藏基类方法     ,调用各自类的方法

          Father f=new  son();                     f调用自己类的方法

          Son  s=new son();               调用自己son类的方法

    2. override   重写基类 ,调用重载了方法的最远的子类的方法。  会影响别的系统…………….

    Father f=new  son();     调用son 的重载后的方法

    Son  s=new son();  调用son的方法

    总结:

    父类和子类有相同签名函数

    1.子类函数默认修饰符都是new(当没有显示声明), 不管父类的方法是 virual 还是普通函数。

    2. 父类函数是virtual 函数,则子类同名函数可以用 new 和 override两个关键字

    3. new 和override运算符都是实现了多态。  都是针对子类将值赋给父类后。父类的实例去该调用何种方法。

    • new 隐藏基类方法     ,调用各自类的方法
    • override   重写基类 ,调用重载了方法的最远的子类的方法。

    *****************************************

    1. linq 中 select 和where 区别

    Enumerable 类

    System.Linq 命名空间

    select   将序列中的每个元素投影到新表中。

    where  基于谓词筛选值序列。

    select 延迟对象 Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>),返回Ienumerable<t>类型,也可以用selectmany 返回结合

    image

    2.

    image

    image

    image

    image

    image

    卸载项目,解决方案就不包含此项目,但是解决方案中还可以看见,可以重新加载。

    移除项目,解决方案就看不到此项目了,也可以重新添加到解决方案。

      

    4.  使用匿名委托可以简化程序,因为无需定义单独的方法

  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/StudyLife/p/3634773.html
Copyright © 2011-2022 走看看