.net(c#)中的new关键字详细介绍

时间:2021-08-29 21:19:27 

1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。
2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。

new关键字在我们的程序中可谓是无时不刻在用到,那么new关键字都可以用在哪些地方呢?考虑以下几个问题:

1、new一个class对象和new一个struct或者new一个enum有什么不同?

答:new一个class时,new完成2个内容:一是调用newobj命令为实例在托管堆中分配内存,二是调用构造函数实现对象初始化。

new一个struct时,new运算符用于调用其构造函数,完成实例的初始化。

2、new在.NET中除了创建对象实例外,还可以做什么?

答:new关键字:作为运算符可以创建对象和调用构造函数;

作为修饰符可以用于向基类成员隐藏继承成员,实现派生类中隐藏基类的virtual方法,不能和override共存;

作为约束可以在泛型声明中约束可能用作类型参数的参数类型,即new约束指定泛型类声明中的任何类型参数都必须要有公共的无参构造函数;

使用new关键字实现多态。

3、new运算符可以重载吗?

答:new运算符不可以重载。

4、泛型中new关键字的作用?

答:new运算符用于返回一个引用,指向系统分配的托管堆的内存地址,new分配内存失败,将引发OutOfMemoryException异常。

5、new一个继承下来的方法和override有什么区别?

答:new是隐藏基类方法,override是覆写基类方法。如果要访问new隐藏了的基类成员需要使用base关键字实现。

6、int i和int i = new int()有什么不同?

答:new一个int时,new运算符用于初始化其值为0,使构造函数完成更优越的初始化操作。


通过继承隐藏名称采用下列形式之一:

•引入类或结构中的常数、指定、属性或类型隐藏具有相同名称的所有基类成员。

•引入类或结构中的方法隐藏基类中具有相同名称的属性、字段和类型。 同时也隐藏具有相同签名的所有基类方法。

•引入类或结构中的索引器将隐藏具有相同名称的所有基类索引器。

标签:.net,new,关键字
0
投稿

猜你喜欢

  • C#遍历子目录的方法

    2022-06-30 11:11:27
  • Android权限操作之uses-permission详解

    2023-07-20 17:07:02
  • Android数据存储方式操作模式解析

    2023-07-27 02:47:05
  • java程序员如何编写更好的单元测试的7个技巧

    2023-09-05 14:57:24
  • java实现单链表倒转的方法

    2023-04-04 04:44:01
  • C#实现支付宝沙箱支付的项目实践

    2021-07-29 17:18:18
  • Java 代理(Proxy)的原理及应用

    2023-08-21 08:40:41
  • MyBatis插入数据返回主键的介绍

    2023-10-26 03:15:21
  • Java ArrayList中存放引用数据类型的方式

    2023-11-16 15:23:46
  • Java之常用类小结案例讲解

    2022-10-08 07:34:24
  • Android开发之机顶盒上gridview和ScrollView的使用详解

    2021-08-06 11:57:59
  • spring系列笔记之常用注解

    2022-02-21 16:15:04
  • 专属于程序员的浪漫-Java输出动态闪图iloveyou

    2023-12-01 16:00:57
  • RocketMQ producer发送者浅析

    2023-04-03 06:35:32
  • java的主要特性学习总结

    2021-11-16 05:46:19
  • Java集合遍历实现方法及泛型通配

    2022-02-26 13:55:54
  • Spring-data-redis操作redis cluster的示例代码

    2022-12-17 17:04:00
  • Java中的ArrayList容量及扩容方式

    2023-10-17 17:24:40
  • Android进阶Handler应用线上卡顿监控详解

    2022-12-21 11:31:00
  • Java实现插入公式到PPT的示例代码

    2023-11-12 03:04:41
  • asp之家 软件编程 m.aspxhome.com