程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 快速入門C#編程之struct和class對比

快速入門C#編程之struct和class對比

編輯:C#入門知識

1、下面是一個結構的定義:

public struct Point
{
	public int X { get; set; }
	public int Y { get; set; }
}

什麼時候用結構:

用於小型的數據結構其中的值一般不修改
2、類的定義:
public class Animal
{
	public string Name { get; set; }
	public double Weight { get; private set; }
	
	private string _color;
	public string Color
	{
		get { return _color; }
		set { _color = value; }
	}
	
	public void MakeSound()
	{
		Console.WriteLine(Sound); 
	}
}

3、結構和類的一個區別: 現在上面兩個都沒有顯式的構造函數,如果給它們加上顯式的構造函數:
public struct Point
{
	public int X { get; set; }
	public int Y { get; set; }
	
	public Point(int X, int Y)
	{
		this.X = X;
		this.Y = Y;
	}
}

如果我們進行實例化,可以發現隱式構造函數仍然可用:
Point p = new Point();
Point P = new Point(10, 12);

但同時我們就不能在結構中再定義一個無參數的構造函數了。而對於類,如果我們沒有為類寫任意的構造函數,那麼C#編譯器在編譯的時候會自動的為這個類生成一個無參數的構造函數,但是一旦我們為這個類寫了任意的一個構造函數的時候,這個隱式的構造函數就不會自動生成了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved