Static Classes And Methods

Normalde biz bir class’ı kullanmak zorunda olduğumuzda new’liyor yani o classtan bir nesne üretiyorduk
Fakat static nesnelerde instance oluşturamayız. Static nesne arkaplanda tek bir nesne olarak oluşuyor ve tüm sistem kullanıcıları tarafından kullanılabiliyor
Static nesneleri direk instance üretmeden kullanırız

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

namespace StaticClassesAndMethods
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * Normalde biz bir class'ı kullanmak zorunda olduğumuzda new'liyor yani o classtan bir nesne üretiyorduk
             * Fakat static nesnelerde instance oluşturamayız. Static nesne arkaplanda tek bir nesne olarak oluşuyor ve tüm sistem kullanıcıları tarafından kullanılabiliyor
             * Static nesneleri direk instance üretmeden kullanırız
             * **/

            Teacher.Number = 10;
            //verdiğimiz bu 10 değeri herkes için aynıdır yani uygulmayı kullanan herkes bu static nesne bellekte tanımlandığı için aynı değere ulaşır
            //Örn biz bir desktop uygulaması kullanıyorsak tüm sayfalarda bu değer 10'dur (sayfalar arası veri taşımak için de kullanılabilir)
            //Web uygulamalarında ise tüm client'lar  erişebilir kullanabilir

            //Genellkle static nesne kullanmamaya çalışırız fakat kullanmamız gereken durumlar vardır
            Utilities.Validate();


            Manager.DoSomething();  //Class static değil ama method static
            Manager manager = new Manager();
            manager.DoSomething2(); //Aynı classtaki static olmayan bir nesneyi yine instance üretip çağırabiliriz
        }
    }

    static class Teacher
    {
        public static int Number { get; set; }
    }

    static class Utilities
    {
        //Uygulama boyunca sıklıkla kullandığımız operasyonları static tanımlayabiliriz
        public static void Validate()    //Validate doğrulama örn şifre en az 8 karakter, büyük harf içeriyor vs
        {
            Console.WriteLine("Validation is done");
        }
    }

    //Bir class'ı static yapmayıp özelliklerini static yapabiliriz
    class Manager
    {
        public static void DoSomething() //static, direk çağırabiliriz
        {
            Console.WriteLine("Done");
        }

        public void DoSomething2()  //static nesne üretip çağırabiliriz
        {
            Console.WriteLine("Done 2");
        }
    }
}

Yorum bırakın

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

WordPress.com ile böyle bir site tasarlayın
Başlayın