真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

結(jié)構(gòu)和類的區(qū)別及結(jié)構(gòu)的使用

類和結(jié)構(gòu)是 .NET Framework 中的常規(guī)類型系統(tǒng)的兩種基本構(gòu)造。 兩者在本質(zhì)上都屬于數(shù)據(jù)結(jié)構(gòu)。封裝著一組總體作為一個(gè)邏輯單位的數(shù)據(jù)和行為。 數(shù)據(jù)和行為是該類或結(jié)構(gòu)的“成員”,它們包括各自的方法、屬性和事件等

成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為翔安等服務(wù)建站,翔安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為翔安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

與類不同的是,結(jié)構(gòu)體用struct 修飾;結(jié)構(gòu)體中的實(shí)例字段不能自定義默認(rèn)值,而類可以,編譯器會(huì)隱式的給出結(jié)構(gòu)體和類的默認(rèn)構(gòu)造函數(shù),但是結(jié)構(gòu)體的默認(rèn)構(gòu)造不能顯示給出,不然編譯器會(huì)報(bào)錯(cuò),當(dāng)類有自定義的構(gòu)造函數(shù)時(shí),默認(rèn)構(gòu)造會(huì)被隱藏,要想使用默認(rèn)構(gòu)造,必須顯示給出;結(jié)構(gòu)體的自定義構(gòu)造函數(shù)必須初始化所有的實(shí)例字段和未初始化的屬性,而類不是.

類在傳遞的時(shí)候,傳遞的內(nèi)容是位于托管內(nèi)存中的位置,結(jié)構(gòu)體在傳遞的時(shí)候,傳遞的內(nèi)容是位于程序堆棧區(qū)的內(nèi)容。當(dāng)類的傳遞對(duì)象修改時(shí),將同時(shí)修改源對(duì)象,而結(jié)構(gòu)體的傳遞對(duì)象修改時(shí),不會(huì)對(duì)源對(duì)象產(chǎn)生影響。

這是我總結(jié)的結(jié)構(gòu)與類的區(qū)別

結(jié)構(gòu)和類的區(qū)別及結(jié)構(gòu)的使用

在 C# 中,結(jié)構(gòu)體是值類型數(shù)據(jù)結(jié)構(gòu)。它使得一個(gè)單一變量可以存儲(chǔ)各種數(shù)據(jù)類型的相關(guān)數(shù)據(jù)。struct 關(guān)鍵字用于創(chuàng)建結(jié)構(gòu)體。

定義一個(gè)玩家的結(jié)構(gòu):

public struct StructHero
{
//玩家名字
public string HeroName;
//原始生命值
public int OriginalBlood;
//***力
public int AttackPower;
//防御力
public int DefendPower;
//玩家的圖片
public Image Image;
//原始位置
public Point OriginalLocation;
//當(dāng)前位置
public Point CurrentLocation;
// 大小
public Size Size;

    public void Move(StructMonster monster)
    {
        //移動(dòng)到怪物左下角
        this.CurrentLocation = new Point(
            monster.OriginalLocation.X,
            monster.OriginalLocation.Y + monster.Size.Height);
    }

    public void Move()
    {
        //返回是將原始位置設(shè)為當(dāng)前位置
        this.CurrentLocation = this.OriginalLocation;
    }

}

定義一個(gè)怪物結(jié)構(gòu):

public struct StructMonster
{
//怪物名字
public string MonsterName;
//原始生命值
public int OriginalBlood;
//當(dāng)前生命值
public int CurrentBlood;
//***力
public int AttackPower;
//防御力
public int DefendPower;
//怪物的圖片
public Image Image;
//原始位置
public Point OriginalLocation;
//當(dāng)前位置
public Point CurrentLocation;
// 大小
public Size Size;

    public void Move(StructHero hero)
    {
        //移動(dòng)到怪物左下角
        this.CurrentLocation = new Point(
            hero.OriginalLocation.X,
            hero.OriginalLocation.Y - hero.Size.Height);
    }

    public void Move()
    {
        //返回是將原始位置設(shè)為當(dāng)前位置
        this.CurrentLocation = this.OriginalLocation;
    }
}

文章標(biāo)題:結(jié)構(gòu)和類的區(qū)別及結(jié)構(gòu)的使用
瀏覽地址:http://weahome.cn/article/gdsojd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部