代码改变世界

C#中关于new的用法

2012-07-16 21:16  Max蚊子  阅读(3246)  评论(0编辑  收藏  举报

笔者知道是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();
        }
    }
  

  

            希望大家多多的补充。

      

  

 

网站:feiger.cn         飞鸽博客,关注互联网、站长圈的程序员博客!