C# new运算符

一、C# new运算符

1. 用于创建对象和调用构造函数。

例如:

Class_Test obj = New Class_Test();

2. 用于为值类型调用默认的构造函数。

例如:

int myInt = New int();上述语句中,myInt初始化为0,它是int类型的默认值。该语句的效果等同于:

int myInt = 0;

3. 不能重载new运算符。

4. 如果new运算符分配内存失败,那么它将引发OutOfMemoryException异常。

 

二、在C#中,new关键字可用作运算符、修饰符或约束。

new运算符:用于创建对象和调用构造函数。

new修饰符:用于向基类成员隐藏继承成员。

new修饰符

在用作修饰符时,new关键字可以显式隐藏从基类继承的成员。隐藏继承的成员时,该成员的派生版本将替换基类版本。虽然可以在不使用new修饰符的情况下隐藏成员,但会生成警告。如果使用new显示隐藏成员,则会取消此名警告,并记录要替换为派生版本这一事实。

对同一成员同时使用new和override是错误的做法,因为这两个修饰符的含义互斥。new修饰符会用同样的名称创建一个新成员并使原始成员变为隐藏的。override修饰符会扩展继承成员的实现。

new约束:用于在泛型声明中约束可能用作类型参数的参数的类型。

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

1.当泛型类创建类型的新实例,请将new约束应用于类型参数。

复制代码
class ItemFactory<T> where T : new()
{
    public T GetNewItem()
    {
        return new T();
    }
}
复制代码

2.当与其他约束一起使用时,new()约束必须最后指定。

public class ItemFactory2<T> where T : IComparable, new()
{
    \\... ...
}

转载于:https://www.cnblogs.com/melao2006/p/4239498.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值