编程语言详细介绍C#中new的几种用法

本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧

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

new 运算符

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

new 修饰符

用于向基类成员隐藏继承成员。

new 约束

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

new 修饰符(C# 参考)

在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成员的派生版本将替换基类版本。在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。使用 new 显式隐藏成员会取消此警告,并记录代之以派生版本这一事实。

若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员

new 运算符(C# 参考)

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

Class1 o = new Class1();

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

 例:int myInt = new int();

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

3.不能重载 new 运算符。

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

new 约束(C# 参考)

new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。当泛型类创建类型的新实例时,将此约束应用于类型参数,如下面的示例所示:

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

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

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

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

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

  4.在同一成员上同时使用 new 和 override 是错误的。

  注意:在不隐藏继承成员的声明中使用 new 修饰符将生成警告。

 示例

  在该例中,嵌套类 MyClass 隐藏了基类中具有相同名称的类。该例不仅说明了如何使用完全限定名访问隐藏类成员,同时也说明了如何使用 new 修饰符消除警告消息。

   using System;
   public class MyBaseC
   {
   public class MyClass
   {
   public int x = 200;
   public int y;
   }
   }
   public class MyDerivedC : MyBaseC
   {
   new public class MyClass // nested type hiding the base type members
   {
   public int x = 100;
   public int y;
   public int z;
   }
   public static void Main()
  {
   // Creating object from the overlapping class:
   MyClass S1 = new MyClass();
   // Creating object from the hidden class:
  MyBaseC.MyClass S2 = new MyBaseC.MyClass();
   Console.WriteLine(S1.x);
   Console.WriteLine(S2.x);
   }
   } 

  输出
  100
  200

以上就是详细介绍C#中new的几种用法的详细内容,更多请关注php中文网其它相关文章!

文章来源:https://www.php.cn/faq/357105.html

(0)

相关推荐

  • Java之static作用的全方位总结

    Java之static作用的全方位总结

  • C# 中类的基本概念

    一.类的概述 在上一篇文章中(C# 中的类型和变量),我们看到 C# 提供了 6 种用户定义类型.其中最重要的,也是首先要阐述的是类.因为类在 C# 中是个很大的主题,所以关于它的讨论将会延伸到接下来 ...

  • 一文带你详细介绍c 中的std::move函数

    前言 在探讨c 11中的Move函数前,先介绍两个概念(左值和右值) 左值和右值 首先区分左值和右值 左值是表达式结束后依然存在的持久对象(代表一个在内存中占有确定位置的对象) 右值是表达式结束时不再 ...

  • 编程语言详细介绍c#消息提示框messagebox的使用

    编程语言详细介绍c#消息提示框messagebox的使用这篇文章主要介绍了c#消息提示框messagebox的详解及使用的相关资料,需要的朋友可以参考下C#消息提示框messagebox的详解及使用消 ...

  • 什么是俄料和田玉?详细介绍一下俄料和田玉的三种原石

    新疆和田玉大家都听说过,那么大家听说过俄料吗?俄料和田玉是同一品种的玉石,一般它的开采地都在俄罗斯.不过,俄料并不是只有俄罗斯有出产,外蒙古.哈萨克斯坦也出产俄料,不过产量很少,绝大多数的俄料都产自俄 ...

  • sql中insert的几种用法

    在做项目中数据库是使用很频繁的,其中插入语句是最频繁不过的,近日写了一些存储过程,又将inset 语句看了遍. 一般格式: insert into 表名 (column1,column2,column ...

  • 如何在ArcGIS中使用不规则三角网(TIN)详细介绍

    如何在ArcGIS中使用不规则三角网(TIN)详细介绍

  • 三种豆蔻的使用技巧分享,详细介绍草蔻、白蔻、肉蔻在香料配方中的作用。

    在香料的日常应用中,草蔻.白蔻.肉蔻都是比较常用的的香料,对这些香料的认识和使用得当,往往可以决定一组配方的优越与否,今天我们就来说说这三种名称相似,在香料组合中起到的作用却是十分不同的香料. 一.草 ...

  • 神话中的女神(母神)和父神都有哪些?为你详细介绍!

    神来自很多的文化和时代,也许有黑暗的一面,所以,你只需要援引他身上的积极品质. 例如,大多数人认为,月亮女神戴安娜是一个有同情心的灵魂:但是你可能会惊讶地发现,根据神话,她会让被她拒绝的情人们被猎犬撕 ...

  • 中蜂特性详细介绍

    中蜂的特性是对我国生态地理条件的一种极好的适应,也是我国特有的生态条件形成的.一.中蜂群势小正常情况下,蜂群的群势取决于蜂王的产卵力和工蜂的寿命.蜂群的理论群势可通过蜂王的日平均产卵量和工蜂在繁殖期的 ...

  • 插件电感中工字电感的详细介绍

    一.电感的含义 电感许多场合全是做为一种储能技术电子器件应用,除开储能技术也有扼流.直流变压器.过滤.串联谐振等功效.交流电流根据输电线情况下,其周边会造成交替变化电磁场,运用磁生电.电生磁,将动能存 ...