• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#new的三种用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在 C# 中,new 关键字可用作运算符、修饰符或约束。
1)new 运算符:用于创建对象和调用构造函数。
2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。 
 1 public class Program: BaseClass
 2     {
 3         new public class Test//2、new修饰符 显式隐藏从基类继承的成员
 4         {
 5             public int x = 2;
 6             public int y = 20;
 7             public int z = 40;
 8         }
 9 
10         static void Main(string[] args)
11         {
12             var c1 = new Test();//1、new操作符 创建对象和调用构造函数
13             var c2 = new BaseClass.Test();
14             Console.WriteLine(c1.x);//2
15             Console.WriteLine(c2.y);//10
16             Console.ReadKey();
17         }
18     }
19 
20     public class BaseClass
21     {
22         public class Test
23         {
24            public int x = 0;
25            public int y = 10;
26         }
27     }

new约束指定泛型类声明中的任何类型参数都必须具有公共的无参数构造函数

 1 using System;
 2 using System.Collections.Generic;
 3 
 4 namespace ConsoleApplication2
 5 {
 6     public class Employee
 7     {
 8         private string name;
 9         private int id;
10 
11         public Employee()
12         {
13             name = "Temp";
14             id = 0;
15         }
16 
17         public Employee(string s, int i)
18         {
19             name = s;
20             id = i;
21         }
22 
23         public string Name
24         {
25             get { return name; }
26             set { name = value; }
27         }
28 
29         public int ID
30         {
31             get { return id; }
32             set { id = value; }
33         }
34     }
35 
36     class ItemFactory<T> where T : new()
37     {
38         public T GetNewItem()
39         {
40             return new T();
41         }
42     }
43 
44     public class Test
45     {
46         public static void Main()
47         {
48             ItemFactory<Employee> EmployeeFactory = new ItemFactory<Employee>();
49             ////此处编译器会检查Employee是否具有公有的无参构造函数。
50             //若没有则会有The Employee must have a public parameterless constructor 错误。
51             Console.WriteLine("{0}'ID is {1}.", EmployeeFactory.GetNewItem().Name, EmployeeFactory.GetNewItem().ID);
52         }
53     }
54 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#实现拍照并且存水印照片发布时间:2022-07-13
下一篇:
c/c++多线程多个线程等待同一个线程的一次性事件发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap