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();
        }
    }
  

  

            希望大家多多的補充。

      

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM