MiCoos 哟,写bug呢?

C#基础 特殊类

2019-08-27
GHMicoos

概述:特殊类,包括匿名类、部分类、静态类、抽象类、密封类。

零 匿名类

0.定义与初始化

  • 是一个继承自Object且没有名称的类。
  • 使用 var关键字,该类的定义从初始化中推断。 var obj=new{FirstName="mi",LastName="coos"}; 如果所设置的值来 自于另一个对象,就可以简化初始化器。 var obj1=new {obj.FirstName,obj.LastName};

一 部分类

0.定义格式与特点

  • partial关键字允许把类,接口,结构放在多个文件中。
  • 如果类定义使用了修饰符或泛型类型参数,那么同一个类的各个部分都必须一样。
  • 把部分类编译到类型中时,特性、类上的xml注释、接口、泛型类型和成员都会合并。
  • 部分类必须在在同一个程序集。

//MyClass1.cs 文件中
public sealed partial  class MyClass<TOne, TTwo>
{

}

//MyClass2.cs 文件中
public sealed partial  class MyClass<TOne,TTwo>
{

}

1.部分类使用场景

  • 必须开发一个比较大的类,为了可读性。(不建议把类定义过大,应该适当拆分)
  • 代码生成器,可能需要把一个类的定义放在多个文件中。

二 静态类

0.定义

  • 如果类只包含静态成员,就可以把类定义成静态的。

public static class MyClass
{
    static string FieldA;
    static string PropertyA { get; set; }
    static void GetString() { return; }
}

三 抽象类

0.定义与特点

  • 抽象类允许包含抽象成员(不是必须)。
  • 抽象类不能实例化,抽象方法不能直接实现。
  • 抽象的派生类如果是抽象类,可以不用重写抽象成员;如果不是抽象类,那么必须重写抽象成员。

abstract class A
{
    public abstract void F();
}

abstract class B:A
{
    public void G() { }
}

class C : B
{
    public override void F()
}

四 密封类

0.定义与特点

  • 密封类表示不能继承该类,密封方法表示不能重写该方法。
  • string就是一个密封类。
  • 要在方法和属性上使用sealed,必须先从基类上把它声明为要重写的方法或属性。

sealed class A
{

}
//无法通过A派生
//class B:A
//{
     
//}


class A
{
    protected virtual void Method() { }
}
class B:A
{
     protected override sealed void Method() { }
}


Similar Posts

上一篇 C#基础 弱引用

Comments