日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
概述C#New運算符

前段時間一個朋友問到C#的New關(guān)鍵字有幾種用法,雖說在日常編程中經(jīng)常用到這個小家伙,但它到底有幾種用法還真沒有留意過,現(xiàn)將從網(wǎng)上總結(jié)出的資料記下以供同仁學(xué)習(xí)。
(1)C# New運算符 用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。
(2)New 修飾符 用于隱藏基類成員的繼承成員。
(3)New 約束 用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。

站在用戶的角度思考問題,與客戶深入溝通,找到宿州網(wǎng)站設(shè)計與宿州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋宿州地區(qū)。

C# New運算符

1.用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)

例:Class_Test MyClass = New Class_Test();

2.也用于為值類型調(diào)用默認的構(gòu)造函數(shù)

例:int myInt = New int();

myInt 初始化為 0,它是 int 類型的默認值。該語句的效果等同于:int myInt = 0;

3.不能重載C# New運算符。

4.如果C# New運算符分配內(nèi)存失敗,則它將引發(fā) OutOfMemoryException 異常。

New 修飾符

使用 New 修飾符顯式隱藏從基類繼承的成員。若要隱藏繼承的成員,請使用相同名稱在派生類中聲明該成員,并用 New 修飾符修飾它。

請看下面的類:

 
 
 
  1. public class MyClass
  2. {
  3. public int x;
  4. public void Invoke() {}
  5. }

在派生類中用 Invoke 名稱聲明成員會隱藏基類中的 Invoke 方法,即:

 
 
 
  1. public class MyDerivedC : MyClass
  2. {
  3. new public void Invoke() {}
  4. }

但是,因為字段 x 不是通過類似名隱藏的,所以不會影響該字段。

通過繼承隱藏名稱采用下列形式之一:
1.引入類或結(jié)構(gòu)中的常數(shù)、指定、屬性或類型隱藏具有相同名稱的所有基類成員。
2.引入類或結(jié)構(gòu)中的方法隱藏基類中具有相同名稱的屬性、字段和類型。同時也隱藏具有相同簽名的所有基類方法。
3.引入類或結(jié)構(gòu)中的索引器將隱藏具有相同名稱的所有基類索引器。
4.在同一成員上同時使用 New 和 override 是錯誤的。

注意:在不隱藏繼承成員的聲明中使用 New 修飾符將生成警告。

示例

在該例中,嵌套類 MyClass 隱藏了基類中具有相同名稱的類。該例不僅說明了如何使用完全限定名訪問隱藏類成員,同時也說明了如何使用New修飾符消除警告消息。

 
 
 
  1. using System;
  2. public class MyBaseC{
  3. public class MyClass{
  4. public int x = 200;
  5. public int y;
  6. }
  7. }
  8. public class MyDerivedC : MyBaseC{
  9. new public class MyClass // nested type hiding the base type members{
  10. public int x = 100;
  11. public int y;
  12. public int z;
  13. }
  14. public static void Main(){
  15. // Creating object from the overlapping class:
  16. MyClass S1 = new MyClass();
  17. // Creating object from the hidden class:
  18. MyBaseC.MyClass S2 = new MyBaseC.MyClass();
  19. Console.WriteLine(S1.x);
  20. Console.WriteLine(S2.x);
  21. }
  22. }

本文題目:概述C#New運算符
文章網(wǎng)址:http://www.dlmjj.cn/article/djppdho.html