24 Ağustos 2015

C# Struct

using System;

namespace ConsoleApplication2
{
    class Program
    {
        /*
         Bir struct class a benzer, ama aşağıdaki gibi bazı farklar mevcuttur.
         * Bir struct value(değer) tiplidir, Class refernce(referans) tiplidir
         * Struct inheritance(mirasçılık) özelliğini desteklemez
        
         Bir struct class'ın aşağıdakiler dışında tüm elemanlarına sahiptir
         * Parametresiz constructor
         * finalizer
         * Virtual elemanlar
         *
         */


        public struct Point
        {
           public int x, y;
           //public int z = 10;//Hata Struct kendi içerisinde tanımlanamaz.
           //public Point() { x = 0; y = 5; }//Hata struct constructor parametresiz tanımlanamaz.
            public Point(int x, int y)
            {
                this.x = x;
                this.y = y;
            }

            //Hata y tanımlı olmalıdır.
            //public Point(int x)
            //{
            //    this.x = x;
            //}
        }

        static void Main(string[] args)
        {
            Point p1 = new Point();
            Console.WriteLine(p1.x);//0
            Console.WriteLine(p1.y);//0

            Point p2 = new Point(1,1);
            Console.WriteLine(p2.x);//1
            Console.WriteLine(p2.y);//1

            Console.ReadKey();

        }
    }
}