C#中結構體的應用

iamzxf發表於2015-04-21

         與C語言一樣,C#中也有結構體,但C#中結構體與C語言結構體、C#中的類有以下異同點:

(1)結構與類相似,都包含資料成員和結構成員;

(2)結構是值型別,類是引用型別。二者的儲存位置不同;

(3)結構只是一種型別,不支援繼承;

(4)結構中不允許為例項欄位賦值;

(5)與類一樣,結構可以定義建構函式;

(6)結構存在預設的、無參的建構函式,但不允許顯式定義無參的建構函式;結構中沒有解構函式;

(7)結構可以採用new建立,也可以採用宣告例項後建立(此時要求相關欄位宣告為public)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace structDemo
{
    struct Point
    {
        public int x, y;
        public Point(int x, int y)
        {
            this.x=x;
            this.y=y;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Point pt1 = new Point(10, 10);
            Point pt2;
            pt2.x = 20;
            pt2.y = 30;

            double distance;
            distance = Math.Sqrt((pt1.x - pt2.x) * (pt1.x - pt2.x) + (pt1.y - pt2.y) * (pt1.y - pt2.y));

            Console.WriteLine("{0,10:f2}",distance);

            Console.ReadLine();
        }
    }
}



相關文章