結構是一種值類型,通常用來封裝一組相關的變量,結構中可以包含構造函數、常量、字段、方法、屬性、運算符、事件和嵌套類型等,但是如果同時包含上述幾個類型則應該考慮使用類。
結構的特點:
·結構式值類型
·向方法傳遞結構時,結構是通過傳值方式傳遞的,而不是作為引用傳遞的。
·結構的實例化可以不適用new運算符
·結構可以聲明構造函數,但他們必須帶參數
·一個結構不能從另一個結構或類繼承
·結構可以實現接口
·在結構中初始化實例字段是錯誤的。
聊了些特點,下面舉個小例子大家參考下:
using System;
using System.Collections.Generic;
using System.Text;
namespace _
{
class Program
{
public struct Rect //定義一個矩形結構
{
public double width; //矩形的寬
public double height; //矩形的高
/// <summary>
/// 構造函數,初始化矩形的寬和高
/// </summary>
/// <param name="x">矩形的寬</param>
/// <param name="y">矩形的高</param>
public Rect(double x, double y)
{
width = x;
height = y;
}
/// <summary>
/// 計算矩形面積
/// </summary>
/// <returns>矩形面積</returns>
public double Area()
{
return width * height;
}
public double CArea(double r)
{
return 3.14 * r * r;
}
}
static void Main(string[] args)
{
Rect rect1; //實例化矩形結構
rect1.width = 5; //為矩形寬賦值
rect1.height = 3; //為矩形高賦值
Console.WriteLine("矩形面積為:" + rect1.Area());
Rect rect2 = new Rect(6, 4); //使用構造函數實例化矩形結構
Console.WriteLine("矩形面積為:" + rect2.Area());
Console.WriteLine("圓的面積為:" + rect2.CArea(10));
Console.ReadLine();
}
}
}