NET_C#资料.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚方法: 一个虚方法必须要用virtual 或 abstract或override 修饰 虚方法不能省略访问控制符,不能是private 和static的,因为他们应该可以被子类所覆盖, 子类要覆盖父类中的方法,须用override,否则认为是一个新方法,并隐藏了父类的方法,不会实行虚方法的调用, 覆盖与被覆盖的方法必须有相同的可访问性和相同的返回类型 虚方法和非虚方法的区别 For example: Class A class B:A { { public void F(){…} new public void F(){} public virtual void G(){…} public override void G(){} } } Class Test { public static void Main() { B b = new B(); | a.F();//调用A.F | a.G();//调用B.G A a = b; | b.F();//调用B.F | b.G();//调用B.G } } 注释: 虚方法调用的方法是运行时对象实例的方法,如:a.G打印的是B.G的方法而非A.G的方法 非虚方法调用的是便宜时对象类型(A a = b; 既认为是a,而非b),如a.F执行的是A.F方法 虚方法调用和非虚方法调用的混合使用: 由于可以在子类中用override来覆盖父类的方法,又可以使用new修饰符来隐藏继承的方法,所以在多次继承的情况下,会产生比较复杂的现象,这时,调用哪个方法不由运行时和编译时类型对象来决定: Class A Class B : A class C : B { { { Public virtual void F(){…} public override void F(){…} new public virtual void F(){…} } } } Class D : C { Public override void F(){…} } Class Test { D d = new D(); | B b = d; | a.F();//调用B.F | c.F();//调用D.F A a = d; | C c = d; | b.F();//调用B.F | d.F();//调用D.F } 反射: 运行时根据程序集及其中的类型得到相关的信息称为反射(Reflection),动态类型创建指运行时动态创建对象. 常用的类有: System.Type System.Assembly System.Activator; 常用的命名空间: System.RunTme System.Reflection 反射就是利用Assembly的matedata(元数据)来操作Assembly及其所含内容的一种操作,其本质就是具有可以在一个程序运行的时候去动态分析、生成和操纵对象、类、属性、方法等等的我们的程序的元素 This关键字: 关键字this仅限于在构造函数中、类的方法和类的实例中使用 在类的构造函数中出现的this做为一个引用类型,它表示对正在构造对象本身的引用 在类的方法中出现的this作为一个引用类型,它表示对调用该方法的对象的引用 在结构的构造函数中出现的this作为一个值类型,它表示对正在构造的结构的引用 在结构的方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用 在任何其他地方使用this关键字都是不合法的 代理(delegate): 代理是通过一个指向函数的指针变量(存放函数指针)来灵活调用多个不同功能的方法,它是面向对象和类型安全的 同一个代理可以调用多个不同的方法,所以使用代理可以在程序运行期调用某个所需的方法(实例方法和静态方法) 但使用代理最重要的特征是:代理只是检查要调用的方法是否与代理的标识想匹配,因为代理只能调用和其定义特征相符的方法,所以代理可以执行匿名方法调用 抽象类与非抽象类的构造函数: 非抽象类的构造函数: public method() : base (){…} 抽象类的构造函数 : protected method(): base() {…} 静态构造函熟: 静态构造方法是对整个类进行初始化工作的规定,一个类至多可以有一个静态构造函数: Static ClassName(){…} 它是自动调用的,不能被显式调用 静态构造方法总是在该类的所有静态域初始化后而执

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档