您现在的位置是:主页 > news > 新加坡网址大全/做网站排名优化的公司

新加坡网址大全/做网站排名优化的公司

admin2025/5/9 22:34:17news

简介新加坡网址大全,做网站排名优化的公司,深圳工程建设交易中心,万能浏览器最新下载在 C# 中,new 关键字可用作运算符、修饰符或约束。 1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从…

新加坡网址大全,做网站排名优化的公司,深圳工程建设交易中心,万能浏览器最新下载在 C# 中,new 关键字可用作运算符、修饰符或约束。 1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从…

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

1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。

2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。

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

关于第二种用法看下例:

Code:
  1. usingSystem;
  2. namespaceConsoleApplication1
  3. {
  4. publicclassBaseA
  5. {
  6. publicintx=1;
  7. publicvoidInvoke()
  8. {
  9. Console.WriteLine(x.ToString());
  10. }
  11. publicintTrueValue
  12. {
  13. get{returnx;}
  14. set{x=value;}
  15. }
  16. }
  17. publicclassDerivedB:BaseA
  18. {
  19. newpublicintx=2;
  20. newpublicvoidInvoke()
  21. {
  22. Console.WriteLine(x.ToString());
  23. }
  24. newpublicintTrueValue
  25. {
  26. get{returnx;}
  27. set{x=value;}
  28. }
  29. }
  30. classTest
  31. {
  32. staticvoidMain(string[]args)
  33. {
  34. DerivedBb=newDerivedB();
  35. b.Invoke();//调用DerivedB的Invoke方法,输出:2
  36. Console.WriteLine(b.x.ToString());//输出DerivedB的成员x值:2
  37. BaseAa=b;
  38. a.Invoke();//调用BaseA的Invoke方法,输出:1
  39. a.TrueValue=3;//调用BaseA的属性TrueValue,修改BaseA的成员x的值
  40. Console.WriteLine(a.x.ToString());//输出BaseA的成员x的值:3
  41. Console.WriteLine(b.TrueValue.ToString());//输出DerivedB的成员x的值,仍然是:1
  42. //可见,要想访问被隐藏的基类的成员变量、属性或方法,办法就是将子类造型为父类,然
  43. //后通过基类访问被隐藏的成员变量、属性或方法。
  44. }
  45. }
  46. }
  47. new约束指定泛型类声明中的任何类型参数都必须具有公共的无参数构造函数.请看下例:
  48. usingSystem;
  49. usingSystem.Collections.Generic;
  50. namespaceConsoleApplication2
  51. {
  52. publicclassEmployee
  53. {
  54. privatestringname;
  55. privateintid;
  56. publicEmployee()
  57. {
  58. name="Temp";
  59. id=0;
  60. }
  61. publicEmployee(strings,inti)
  62. {
  63. name=s;
  64. id=i;
  65. }
  66. publicstringName
  67. {
  68. get{returnname;}
  69. set{name=value;}
  70. }
  71. publicintID
  72. {
  73. get{returnid;}
  74. set{id=value;}
  75. }
  76. }
  77. classItemFactory<T>whereT:new()
  78. {
  79. publicTGetNewItem()
  80. {
  81. returnnewT();
  82. }
  83. }
  84. publicclassTest
  85. {
  86. publicstaticvoidMain()
  87. {
  88. ItemFactory<Employee>EmployeeFactory=newItemFactory<Employee>();
  89. 此处编译器会检查Employee是否具有公有的无参构造函数。
  90. //若没有则会有TheEmployeemusthaveapublicparameterlessconstructor错误。
  91. Console.WriteLine("{0}'IDis{1}.",EmployeeFactory.GetNewItem().Name,EmployeeFactory.GetNewItem().ID);
  92. }
  93. }
  94. }