35.new关键字的作用

  1. 35.new关键字的作用
    1. 35.1 题目
    2. 35.2 深入解析
    3. 35.3 答题示例
    4. 35.4 关键词联想

35.new关键字的作用


35.1 题目

C#中new关键字的作用(至少说出3种)。


35.2 深入解析

在C#中,new 关键字有多种用途,其中至少包括以下三种:

  1. 创建新对象

    • 最基本的用途是使用 new 关键字来实例化一个类,创建新的对象。例如:
      MyClass obj = new MyClass();
      
  2. 方法隐藏

    • 当在子类中声明与父类非虚成员同名时,使用 new 隐藏基类成员;这与 override 重写 virtual 成员不同,通过父类引用调用时仍执行基类实现。例如:
      class Parent
      {
          public void Print()
          {
              Console.WriteLine("Parent class method");
          }
      }
      
      class Child : Parent
      {
          public new void Print()
          {
              Console.WriteLine("Child class method");
          }
      }
      
  3. 泛型约束中使用new关键词

    • 在泛型约束中使用 new 关键字表示需要无参构造函数的类型参数。这种约束要求泛型类型参数必须具有公共的无参数构造函数。例如:
      public class MyClass<T> where T : new()
      {
          // T必须具有无参数构造函数
      }
      

new 关键字在不同的语境中有不同的作用,但总体来说,它用于实例化对象、方法隐藏以及泛型约束中表示需要无参数构造函数的类型参数。


35.3 答题示例

new 关键字在 C# 中常见用途有:

  1. 实例化对象var obj = new MyClass(); 分配堆内存并调用构造函数;
  2. 方法隐藏:在子类中使用 public new void Foo() 隐藏基类同名方法;
  3. 泛型约束where T : new() 要求类型参数必须有公共无参构造函数;
  4. 初始化数组int[] arr = new int[10]; 分配并初始化数组;
  5. 创建匿名类型var anon = new { Name = "A", Age = 1 }; 在编译期自动生成类并实例化。”

35.4 关键词联想

  • 实例化 (new MyClass())
  • 隐藏(base.Member) (new void Method())
  • 泛型约束 (where T : new())
  • 数组分配 (new T[n])
  • 匿名类型 (new { ... })
  • 堆内存
  • 构造函数


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏