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