zoukankan      html  css  js  c++  java
  • C#中修饰符用法“virtual(虚拟函数)、override(重载函数)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”

    1、virtual用于修饰方法、属性、索引器或者事件声明,并使它们可以在派生类中被重写。virtual不能与static、abstract、private或者override修饰符一起使用。

    声明为virtual的方法被重写时,派生类中可以使用base关键字访问父类中的publid,protected成员。语法:base.member

    但base关键字不能跳过类层次结构中的多个层次,子类不能访问祖父类的成员。base.base.member是非法的

    2、override要扩展或者修改继承的方法、属性、索引器或事件的抽象实现或者虚拟实现,必须使用override修饰符。

    不能重写非虚方法或静态方法。 重写的基方法必须是 virtualabstractoverride 的。

    3、static使用它声明属于类型本身而不是属于特定的对象的静态成员。static修饰符可以用于类、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。

    下面的类声明为 static,并且只包含 static 方法:

    static class CompanyEmployee
    {
    public static void DoSomething() { /*...*/ }
    public static void DoSomethingElse() { /*...*/ }
    }

    常数或者类型声明隐式地是静态成员。

    不能通过实例引用静态成员。 然而,可以通过类型名称引用它。 例如,请考虑以下类:

    public class MyBaseC
    {
    public struct MyStruct
    {
    public static int x = 100;
    }
    }

    若要引用静态成员 x,请使用完全限定名 MyBaseC.MyStruct.x,除非可从相同范围访问成员:

    Console.WriteLine(MyBaseC.MyStruct.x);

    尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只有一个副本。

    不可以使用 this 来引用静态方法或属性访问器。

    如果对类应用 static 关键字,则该类的所有成员都必须是静态的。

    类和静态类可以有静态构造函数。 静态构造函数在程序开始和类实例化之间的某个时刻调用。

    4、abstract 修饰符指示所修饰的内容缺少实现或未完全实现。 abstract 修饰符可用于类、方法、属性、索引器和事件。 在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。 标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。



    学习交流群:364976091
  • 相关阅读:
    SqlServer查询所有表名 查询表的所有列名
    IIS控制txt文件的访问
    CHM文件打不开
    [转]VS 2010项目中添加lib库
    SqlServer游标
    [转]_beginthread(), _beginthreadex()与CreateThread()的区别
    jquery radio快速度取值
    linx niginx下php无法创建文件夹及文件
    [转载]无效的 CurrentPageIndex 值.它必须大于等于 0 且小于 PageCount
    使用DateGrid的ItemCommand的一点心得
  • 原文地址:https://www.cnblogs.com/firstcsharp/p/2283549.html
Copyright © 2011-2022 走看看