最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于C# 類和對象詳情

 更新時間:2021年09月17日 17:32:23   作者:陳言必行  
類是C#面向?qū)ο缶幊痰幕締卧?。一個類都可以包含2種成員:字段和方法,接下來小編將在文章里向大家詳細介紹

一、對象的定義和創(chuàng)建

定義類對象的方法為:

類名 對象名;

類是引用類型的,當定義了對象之后,系統(tǒng)會為數(shù)據(jù)引用分配存儲空間,但是用來保存對象的實際數(shù)據(jù)的空間并沒有分配。

對象的創(chuàng)建

創(chuàng)建對象時需要使用new運算符。new運算符可以為任意指定類類型的實例分配并初始化內(nèi)存。

創(chuàng)建對象的語法形式如下: 對象名 = new類名();

代碼示例,對象的定義和創(chuàng)建:

class Program
{
    static void Main(string[] args)
    {
        //對象的定義和創(chuàng)建
        Test t = new Test();
        
        //或者 先定義
        Test t1;
        // 使用時創(chuàng)建
        t1 = new Test();
    }
}

class Test
{
    
}  

行對象的創(chuàng)建時,需要注意:

  • new運算符后為要創(chuàng)建的對象所屬類的類名
  • 類名后的圓括號不能省略
  • 可以將對象的定義和創(chuàng)建合并在一起

二、、對象的初始化

C#中實現(xiàn)對象初始化的方式有兩種:

  1. 借助構(gòu)造函數(shù)或使用
  2.  對象初始化列表。

1. 借助構(gòu)造函數(shù)或使用

new運算表達式的圓括號中所帶參數(shù)并不是任意的,圓括號中是否支持參數(shù)、可以攜帶幾個參數(shù)是由對象所屬類的構(gòu)造函數(shù)形式?jīng)Q定的。

C#的類支持兩種構(gòu)造函數(shù):實例構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)

實例構(gòu)造函數(shù)是實現(xiàn)初始化類實例所需操作的成員。

靜態(tài)構(gòu)造函數(shù)是一種用于在第一次加載類本身時實現(xiàn)其初始化所需操作的成員。

C#類的靜態(tài)構(gòu)造函數(shù)初始化類層次的項目。通常,靜態(tài)構(gòu)造函數(shù)初始化類的靜態(tài)字段。

類層次的項目初始化必須在任何靜態(tài)成員被引用之前,同時也必須在該類的所有對象創(chuàng)建之前。

2. 實例構(gòu)造函數(shù)

實例構(gòu)造函數(shù)是一個特殊的方法,它在創(chuàng)建類的每個新對象時執(zhí)行,用以初始化對象的狀態(tài)。

實例構(gòu)造函數(shù)應(yīng)該聲明為public。

下面是實例構(gòu)造函數(shù)的一般定義形式:

// 無參構(gòu)造
public 類名()
{
    函數(shù)體
}
// 帶參構(gòu)造
public 類名(參數(shù)列表)
{
    函數(shù)體
}

定義實例構(gòu)造函數(shù)時需注意:

  • 實例構(gòu)造函數(shù)可以帶有參數(shù),也可以不帶參數(shù),
  • 實例構(gòu)造函數(shù)的參數(shù)設(shè)置決定了對象創(chuàng)建時new運算表達式中圓括號中的參數(shù)格式;
  • 實例構(gòu)造函數(shù)可以重載。

其他說明:

  • 當類的聲明中沒有顯式提供實例構(gòu)造函數(shù)時,編譯器會提供一個隱式的默認構(gòu)造函數(shù)。
  • 默認構(gòu)造函數(shù)不帶參數(shù),并且方法體為空。
  • 調(diào)用默認構(gòu)造函數(shù)實現(xiàn)對象創(chuàng)建時,new運算表達式后的圓括號內(nèi)不能帶有參數(shù)。

3. 靜態(tài)構(gòu)造

靜態(tài)構(gòu)造函數(shù):

  • C#類的靜態(tài)構(gòu)造函數(shù)初始化類層次的項目。
  • 通常,靜態(tài)構(gòu)造函數(shù)初始化類的靜態(tài)字段。
  • 類層次的項目初始化必須在任何靜態(tài)成員被引用之前,同時也必須在該類的所有對象創(chuàng)建之前。

使用靜態(tài)構(gòu)造函數(shù)時,需注意:

  • 靜態(tài)構(gòu)造函數(shù)只有一個,不能重載,并且不能帶參數(shù);
  • 靜態(tài)構(gòu)造函數(shù)不能有訪問修飾符,它由系統(tǒng)自動調(diào)用;
  • 類的靜態(tài)構(gòu)造函數(shù)和實例構(gòu)造函數(shù)可以共存;
  • 靜態(tài)構(gòu)造函數(shù)不能訪問類的實例成員。

代碼示例:

class Program
{
    static void Main(string[] args)
    {
        Test t = new Test();
        // 輸出: 0,0,1
        Console.WriteLine(t.X + "," + t.Y + "," + Test.Z)

        Test t1 = new Test(1, 2);
        // 輸出: 1,2,2
        Console.WriteLine(t1.X + "," + t1.Y + "," + Test.
                    
        Test t2 = new Test(3, 4);
        // 輸出: 3,4,3
        Console.WriteLine(t2.X + "," + t2.Y + "," + Test.

        Console.ReadLine();
    }
}

class Test
{
   public int X = 0;
   public int Y = 0;

   public static int Z = 0;

    // 無參構(gòu)造
    public Test() { Z++; }

    // 帶參構(gòu)造
    public Test(int X, int Y)
    {
        this.X = X;
        this.Y = Y;
        Z++;
    }

    // 靜態(tài)構(gòu)造 -- 初始化Z值
    static Test()
    {
        Z = 0;
    }
}    

三、對象的引用

對象成員的引用形式為:

對象名.實例成員名
// 或者
對象名.實例成員名(實參列表)

對象的運算同一類的兩個對象支持賦值、相等與不相等運算。如下所示:

Test t = new Test();
Test t1 = new Test();

// 輸出:false
Console.WriteLine(t == t1);
// 對象的賦值操作
t = t1;
// 輸出:true --> 此時t,t1表示為同一對象
Console.WriteLine(t == t1);

對象之間除了可以進行比較,賦值操作之外。還可以至此isas運算符,isas運算符更多的應(yīng)用于基類和派生類之間進行類型轉(zhuǎn)換,詳細說明在繼承處講解。

到此這篇關(guān)于關(guān)于C# 類和對象詳情的文章就介紹到這了,更多相關(guān)C# 類和對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Extjs4如何處理后臺json數(shù)據(jù)中日期和時間

    Extjs4如何處理后臺json數(shù)據(jù)中日期和時間

    本文給大家分享Extjs4如何處理后臺json數(shù)據(jù)中日期和時間,通過代碼示例給大家剖析,感興趣的朋友快來圍觀
    2015-08-08
  • macOS系統(tǒng)下Vscode的python配置教程

    macOS系統(tǒng)下Vscode的python配置教程

    這篇文章主要介紹了macOS系統(tǒng)下Vscode的python配置教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • c#實現(xiàn)網(wǎng)頁圖片提取工具代碼分享

    c#實現(xiàn)網(wǎng)頁圖片提取工具代碼分享

    c#實現(xiàn)網(wǎng)頁圖片提取工具代碼分享,大家參考使用吧
    2013-12-12
  • C#中使用@聲明變量示例(逐字標識符)

    C#中使用@聲明變量示例(逐字標識符)

    這篇文章主要介紹了C#中使用@聲明變量示例(逐字標識符)在C#中,@符號不僅可以加在字符串常量之前,使字符串不作轉(zhuǎn)義之用,還可以加在變量名之前,使變量名與關(guān)鍵字不沖突,這種用法稱為“逐字標識符”,需要的朋友可以參考下
    2015-06-06
  • C#自定義針對URL地址的處理類實例

    C#自定義針對URL地址的處理類實例

    這篇文章主要介紹了C#自定義針對URL地址的處理類,實例分析了C#解析URL地址實現(xiàn)URl參數(shù)加密解密及參數(shù)解析的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C# WebService發(fā)布以及IIS發(fā)布

    C# WebService發(fā)布以及IIS發(fā)布

    這篇文章主要介紹了C# WebService發(fā)布以及IIS發(fā)布的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#動態(tài)執(zhí)行批處理命令的方法

    C#動態(tài)執(zhí)行批處理命令的方法

    這篇文章主要介紹了C#動態(tài)執(zhí)行批處理命令的方法,可實現(xiàn)動態(tài)執(zhí)行一系列控制臺命令,并允許實時顯示出來執(zhí)行結(jié)果,需要的朋友可以參考下
    2014-11-11
  • C#中的枚舉類型(Enum)介紹

    C#中的枚舉類型(Enum)介紹

    這篇文章介紹了C#中的枚舉類型(Enum),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C#在新建線程中使用Timer無效問題及解決

    C#在新建線程中使用Timer無效問題及解決

    這篇文章主要介紹了C#在新建線程中使用Timer無效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • C#縮略圖多路徑多格式保存的實例

    C#縮略圖多路徑多格式保存的實例

    這篇文章介紹了C#縮略圖多路徑多格式保存的實例,有需要的朋友可以參考一下
    2013-07-07

最新評論

东莞市| 朔州市| 文水县| 邵阳市| 南乐县| 镇赉县| 陇南市| 肥西县| 临桂县| 彩票| 齐齐哈尔市| 城步| 上饶县| 喜德县| 安康市| 福建省| 泰来县| 甘南县| 阜新| 墨江| 洛川县| 观塘区| 织金县| 名山县| 丽水市| 山东省| 任丘市| 曲松县| 海丰县| 宁海县| 马龙县| 灵石县| 泸溪县| 白银市| 麟游县| 汾阳市| 安阳县| 丰都县| 大英县| 石阡县| 江华|