重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
類和結構是 .NET Framework 中的常規類型系統的兩種基本構造。 兩者在本質上都屬于數據結構。封裝著一組總體作為一個邏輯單位的數據和行為。 數據和行為是該類或結構的“成員”,它們包括各自的方法、屬性和事件等
成都創新互聯-專業網站定制、快速模板網站建設、高性價比侯馬網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式侯馬網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋侯馬地區。費用合理售后完善,10多年實體公司更值得信賴。與類不同的是,結構體用struct 修飾;結構體中的實例字段不能自定義默認值,而類可以,編譯器會隱式的給出結構體和類的默認構造函數,但是結構體的默認構造不能顯示給出,不然編譯器會報錯,當類有自定義的構造函數時,默認構造會被隱藏,要想使用默認構造,必須顯示給出;結構體的自定義構造函數必須初始化所有的實例字段和未初始化的屬性,而類不是.
類在傳遞的時候,傳遞的內容是位于托管內存中的位置,結構體在傳遞的時候,傳遞的內容是位于程序堆棧區的內容。當類的傳遞對象修改時,將同時修改源對象,而結構體的傳遞對象修改時,不會對源對象產生影響。
這是我總結的結構與類的區別
在 C# 中,結構體是值類型數據結構。它使得一個單一變量可以存儲各種數據類型的相關數據。struct 關鍵字用于創建結構體。
定義一個玩家的結構:
public struct StructHero
{
//玩家名字
public string HeroName;
//原始生命值
public int OriginalBlood;
//***力
public int AttackPower;
//防御力
public int DefendPower;
//玩家的圖片
public Image Image;
//原始位置
public Point OriginalLocation;
//當前位置
public Point CurrentLocation;
// 大小
public Size Size;
public void Move(StructMonster monster)
{
//移動到怪物左下角
this.CurrentLocation = new Point(
monster.OriginalLocation.X,
monster.OriginalLocation.Y + monster.Size.Height);
}
public void Move()
{
//返回是將原始位置設為當前位置
this.CurrentLocation = this.OriginalLocation;
}
}
定義一個怪物結構:
public struct StructMonster
{
//怪物名字
public string MonsterName;
//原始生命值
public int OriginalBlood;
//當前生命值
public int CurrentBlood;
//***力
public int AttackPower;
//防御力
public int DefendPower;
//怪物的圖片
public Image Image;
//原始位置
public Point OriginalLocation;
//當前位置
public Point CurrentLocation;
// 大小
public Size Size;
public void Move(StructHero hero)
{
//移動到怪物左下角
this.CurrentLocation = new Point(
hero.OriginalLocation.X,
hero.OriginalLocation.Y - hero.Size.Height);
}
public void Move()
{
//返回是將原始位置設為當前位置
this.CurrentLocation = this.OriginalLocation;
}
}
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。