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

 更新时间:2013年10月16日 15:50:02   作者:  
在 C# 中,new 关键字可用作运算符、修饰符或约束

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,使构造函数完成更优越的初始化操作。


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

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

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

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

相关文章

  • C#代码性能测试类(简单实用)

    C#代码性能测试类(简单实用)

    这篇文章主要介绍了C#代码性能测试类(简单实用),本文直接给出实现代码和使用示例,需要的朋友可以参考下
    2015-06-06
  • C#单例类的实现方法

    C#单例类的实现方法

    这篇文章主要介绍了C#单例类的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • C#使用Fleck实现创建WebSocket服务器

    C#使用Fleck实现创建WebSocket服务器

    这篇文章主要为大家详细介绍了C#如何使用Fleck实现创建WebSocket服务器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • C#并行编程之PLINQ(并行LINQ)

    C#并行编程之PLINQ(并行LINQ)

    这篇文章介绍了C#并行编程之PLINQ(并行LINQ),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 用.NET创建Windows服务的方法

    用.NET创建Windows服务的方法

    用.NET创建Windows服务的方法...
    2007-03-03
  • C# AStar寻路算法详解

    C# AStar寻路算法详解

    AStar算法是一种图形搜索算法,常用于寻路。他是以广度优先搜索为基础,集Dijkstra算法和最佳优先(best fit)于一身的一种算法,本文主要介绍了AStar寻路算法的原理与实现,需要的可以参考一下
    2023-03-03
  • c#实现服务器性能监控并发送邮件保存日志

    c#实现服务器性能监控并发送邮件保存日志

    这篇文章主要介绍了c#实现服务器性能监控并发送邮件保存日志的示例,代码分为客户端和服务端,客户端可安装为本地服务形式启动
    2014-01-01
  • 使用 CliWrap 让C#中的命令行交互(推荐)

    使用 CliWrap 让C#中的命令行交互(推荐)

    这篇文章主要介绍了使用 CliWrap 让C#中的命令行交互举重若轻,这是一个在 .NET 平台使用的命令行交互工具库, 通过在C# 中使用 Fluent 的API, 让命令行交互,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • C#开发WinForm清空DataGridView控件绑定的数据

    C#开发WinForm清空DataGridView控件绑定的数据

    本文详细讲解了C#开发WinForm清空DataGridView控件绑定数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#连接Excel驱动与示例代码分享

    C#连接Excel驱动与示例代码分享

    这篇文章主要介绍了C#连接Excel驱动与示例代码,需要的朋友可以参考下
    2014-02-02

最新评论