C#之两个类重名带来的阅读误解

public abstract class A
{
    public T GetA()
    {
        return ((A)this).a;
    }
}

public class A : A
{
    protected T m_A;

    public virtual T a
    {
        get { return m_A; }
        set { m_A = value; }
    }
}

上面的代码演示了这样几个特性,乍一看有点玄妙,其实主要是因为两个类重名:

  1. 泛型类可以和非泛型类重名。
  2. 非泛型类的泛型函数可以把自己(this)强转为子泛型类。
  3. 可以使用抽象基类来抽象泛型类,供逻辑层进行方便的遍历调用。

其实只是个很简单的语法现象而已。

你可能感兴趣的:(Unity,Unity3d,C#,CSharp,重名,泛型)