C#中关于new的用法

笔者知道是new可以当做运算符和修饰符,在3个场合用过,希望各位园友不仅要看,更希望大家多多补充。

  1、运算符就是在实例化一个类的时候(运算符用法)

      例如有一个类A:

                         A a=new A();

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

public class Example<T> where T : System.Data.Objects.ObjectContext

    {
    }
  3、就是在子类中隐藏基类的成员(包括数据成员和成员函数),可以省略,一般还是写上比较好这样让人更容易理解;对基类的成员访问可以用base.来访问(这个是在anytao的博客上面看到的)

public class Number
    {
public static int i =123;

       
publicvoid ShowInfo()
        {
            Console.WriteLine(
"base class---");
        }

       
publicvirtualvoid ShowNumber()
        {
            Console.WriteLine(i.ToString());
        }
    }

   public
class IntNumber : Number
    {
       
new public staticint i =456;

       
public new  virtual void ShowInfo() //这儿和public void ShowInfo()是一样的结果
        {
            Console.WriteLine(
"Derived class---");
        }

       
publicoverridevoid ShowNumber()
        {
            Console.WriteLine(
"Base number is {0}", Number.i.ToString());
            Console.WriteLine(
"New number is {0}", i.ToString());           
        }
    }

   
class Tester
    {
       
publicstaticvoid Main(string[] args)
        {
            Number num
=new Number();
            num.ShowNumber();
            IntNumber intNum
=new IntNumber();
            intNum.ShowNumber();

            Number number
=new IntNumber();
            //究竟调用了谁?
            number.ShowInfo();
            //究竟调用了谁?
            number.ShowNumber();
        }
    }
  

  

            希望大家多多的补充。

      

  

※如果你觉得这篇文章不错,请点击推荐。如果你觉得我写的对你有用请关注我。
作者:Max蚊子
网站:feiger.cn         飞鸽博客,关注互联网、站长圈的程序员博客!
             
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/kim01/p/2594189.html