关于C#中的new的用法

修饰符:隐藏基类中的成员(是基类中的成员,所以字段、属性、事件等等都可以隐藏,不单单是方法哦)

复制代码
public class Car
{
    public void WriteName(string name)
    {
        Console.WriteLine(name);
    }
}

public class NewCar:Car
{
    public void WriteName(string name)
    {
        Console.WriteLine("车名":+name);
    }
}
复制代码

这段代码中有一个错误:VS会提示

为了能使子类使用WriteName这个方法,就得用new关键字来隐藏父类中的方法,也可以说是我们新建了一个WriteName方法,这种用法一般在写第三方插件的时候用得较多

复制代码
public class NewCar:Car
{
    //用new隐藏基类中的方法
    public new void WriteName(string name)
    {
        Console.WriteLine("车名":+name);
    }
}
复制代码

当然,如果想使用父类中的成员只需显示转换就行


约束:new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 要注意的是如果要使用 new 约束,则该类型不能为抽象类型;

当泛型类中有多个约束时,new约束必须写在最后

 public class Cars<T>
        where T : IComparable, new(){ }

new的基本用法就这么多,当然还有一些别的小知识点,例如创建匿名类等等

原文地址:https://www.cnblogs.com/feige/p/5592361.html