亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于C# 類(lèi)和對(duì)象詳情

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

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

定義類(lèi)對(duì)象的方法為:

類(lèi)名 對(duì)象名;

類(lèi)是引用類(lèi)型的,當(dāng)定義了對(duì)象之后,系統(tǒng)會(huì)為數(shù)據(jù)引用分配存儲(chǔ)空間,但是用來(lái)保存對(duì)象的實(shí)際數(shù)據(jù)的空間并沒(méi)有分配。

對(duì)象的創(chuàng)建

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

創(chuàng)建對(duì)象的語(yǔ)法形式如下: 對(duì)象名 = new類(lèi)名();

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

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

class Test
{
    
}  

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

  • new運(yùn)算符后為要?jiǎng)?chuàng)建的對(duì)象所屬類(lèi)的類(lèi)名
  • 類(lèi)名后的圓括號(hào)不能省略
  • 可以將對(duì)象的定義和創(chuàng)建合并在一起

二、、對(duì)象的初始化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

其他說(shuō)明:

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

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

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

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

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

  • 靜態(tài)構(gòu)造函數(shù)只有一個(gè),不能重載,并且不能帶參數(shù);
  • 靜態(tài)構(gòu)造函數(shù)不能有訪問(wèn)修飾符,它由系統(tǒng)自動(dòng)調(diào)用;
  • 類(lèi)的靜態(tài)構(gòu)造函數(shù)和實(shí)例構(gòu)造函數(shù)可以共存;
  • 靜態(tài)構(gòu)造函數(shù)不能訪問(wèn)類(lèi)的實(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;

    // 無(wú)參構(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;
    }
}    

三、對(duì)象的引用

對(duì)象成員的引用形式為:

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

對(duì)象的運(yùn)算同一類(lèi)的兩個(gè)對(duì)象支持賦值、相等與不相等運(yùn)算。如下所示:

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

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

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

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

相關(guān)文章

  • C#打包部署并把.net framework框架打到安裝包的方法步驟

    C#打包部署并把.net framework框架打到安裝包的方法步驟

    打包c(diǎn)#程序時(shí),有時(shí)需要添加.net framework組件到安裝包,本文就來(lái)介紹一下C#打包部署并把.net framework框架打到安裝包的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • C# SkinEngine控件 給窗體添加皮膚的方法

    C# SkinEngine控件 給窗體添加皮膚的方法

    我在網(wǎng)上搜索過(guò),給窗體使用皮膚的方法有很多,不過(guò)C#中這種方法最簡(jiǎn)單。利用 IrisSkin2.dll 所提供的控件 SkinEngine 來(lái)為窗體添加皮膚。
    2013-04-04
  • C#文件加密方法匯總

    C#文件加密方法匯總

    這篇文章主要介紹了C#文件加密方法,實(shí)例匯總了常見(jiàn)的加密方法如AES加密類(lèi)、文件加密類(lèi)、文件夾加密類(lèi)等,最后給出完整的實(shí)例源碼下載供大家參考借鑒,需要的朋友可以參考下
    2014-11-11
  • Unity實(shí)現(xiàn)彈球打磚塊游戲

    Unity實(shí)現(xiàn)彈球打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)彈球打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C#中調(diào)整圖像大小的步驟詳解

    C#中調(diào)整圖像大小的步驟詳解

    這篇文章主要介紹了C#中調(diào)整圖像大小的步驟詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • C#難點(diǎn)逐個(gè)擊破(5):類(lèi)的訪問(wèn)類(lèi)型

    C#難點(diǎn)逐個(gè)擊破(5):類(lèi)的訪問(wèn)類(lèi)型

    類(lèi)的訪問(wèn)類(lèi)型有時(shí)也叫訪問(wèn)級(jí)別,使用以下訪問(wèn)修改符:Public、Protected、Private、internal、protected internal。
    2010-02-02
  • 關(guān)于C#中yield?return用法的思考

    關(guān)于C#中yield?return用法的思考

    在這篇文章中,我們將深入討論?C#?中yield?return的機(jī)制和用法,幫助您更好地理解這個(gè)強(qiáng)大的功能,并在實(shí)際開(kāi)發(fā)中靈活使用它,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說(shuō)明

    C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說(shuō)明

    這篇文章主要介紹了C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說(shuō)明的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • C# XmlDocument操作XML案例詳解

    C# XmlDocument操作XML案例詳解

    這篇文章主要介紹了C# XmlDocument操作XML案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解c#與python的交互方式

    詳解c#與python的交互方式

    這篇文章主要介紹了詳解c#與python的交互方式,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論