/*結構體(struct)

 *通常我們會用來封裝小型相關變量

 *例如,點的x,y的坐標.

 * public struct Point

 * {

 *     public int X;

 *     public int Y;

 * }

 * 結構體是一個值類型

 * 結構也可以包含建構函式、常數、欄位、方法、屬性、索引子、運算子、事件和巢狀型別,

 * 雖然如果需要上述數種成員時,您應該考慮讓型別變成類別。

 * 結構可以實作介面,但不能繼承自另一個結構。

 * 因為如此,結構成員無法宣告為 protected。

 * 

 * 結構有下列屬性:

 * 結構為實值型別,而類別則是參考型別。

 * 與類別不同的是,結構不需使用 new 運算子就能執行個體化

 * 結構可以宣告建構函式,但是必須採用參數

 * 結構無法從另一個結構或類別繼承而來,且它不能成為類別的基底。所有結構都是從繼承自 System.Object 的 System.ValueType 直接繼承而來

 * 結構可實作介面

 * 結構可以用來當做可為 Null 的型別,而且可以對其指派 null 值。

 * 

 * 

 * 結構與類別所使用的語法幾乎相同,不過結構的限制比類別多:

 * 結構宣告內不能初始化欄位,除非將其宣告為 const 或 static。

 * 結構不可宣告預設建構函式 (沒有參數的建構函式) 或解構函式。

 * 由於編譯器會自動建立和終結結構的複本,因此不需要預設建構函式和解構函式。

 * 實際上,編譯器會指派其預設值的所有欄位來實作預設建構函式 (請參閱預設值表 (C# 參考))。結構無法繼承自類別或其他結構。

 * 結構為實值型別。當您從結構建立物件並指派給變數時,變數就會包含完整的結構值。當複製包含結構的變數時,就會複製所有資料,而新變數所做的任何修改並不會變更舊變數的資料

 * 。由於結構不會使用參考,因此沒有識別。您無法區別兩個具有相同資料的實值型別執行個體。C# 中的所有實值型別都衍生自 ValueType,該型別則繼承自 Object。

 * 實值型別可由編譯器在稱為 boxing 的處理序中轉換成參考型別。如需詳細資訊,請參閱 Boxing 和 Unboxing (C# 程式設計手冊)。

 * 

 * 


 */


using System;

public struct Book

{

    public int price;

    public string title;

    public string author;

}

class Test

{

    static void Main()

    {

        Book bk=new Book();

        bk.price=23;

        bk.title="書名";

        bk.author="作者";

        Console.WriteLine(bk.title.ToString() + bk.author.ToString() + bk.price.ToString());

    }

}


申明

非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

博文欢迎转载,但请给出原文连接。