閱讀23 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C# 結構(很少能用到)

結構示例

public struct Person
{
    string Name;
    int  height;
    int  weight
    
    public booloverWeight()
    {
       //implement something
    }
}

類示例

public class TestTime
{
    int hours;
    int minutes;
    int seconds;
    
    public void passtime()
    {
       //implementation of behavior
    }
}

調用過程

public class Test
{
    public static ovid Main
    {
       Person Myperson=new Person      //聲明結構
       TestTime Mytime=New TestTime    //聲明類
    }
}

從上麵的例子中我們可以看到,類的聲明和結構的聲明非常類似,隻是限定符後麵是 struct還是 class的區別,而且使用時,定義新的結構和定義新的類的方法也非常類似。那麼類和結構的具體區別是什麼呢?

結構可以看作是輕量級的類,在性能上要好一點。

相同之處:

·        結構和類對於程序來講都通過指針操作,同樣是麵向對象的形式。

不同之處:

·        結構體對象總是在線程堆棧上操作,而不是托管堆上。

·        不能繼承一個結構體(所以在調用結構體的方法時不需要查找 vtable: 虛函數繼承表)

·        我們不能聲明構造函數為空的結構體

·        結構體的構造函數內必須初始化所有變量

·        結構體的字段不能有默認值(默認都是二進製意義上的零值),但是可以在構造函數內改變“默認值”

小結:結構可用於表示相互聯係的數據。可以通過句點字符訪問結構的數據成員。

最後更新:2017-04-03 12:54:15

  上一篇:go Win7配置IIS遇到問題及解決方法:IIS圖標不見了
  下一篇:go Response.Redirect用法詳解