خوب همونطوری که میبینید در قسمت بالا ما اومدیم از static برای کلاسمون استفاده کردیم.
وقتی که از static استفاده کردیم دیگه نمیتونیم در قسمت های دیگه ی از اون کلاس instance درست کنیم با new پس میایم و مستقیم از خوده کلاس و متد داخلش برای محاسبات استفاده میکنیم. که مزایاش میتونه این باشه که نمیایم فقط برای این که از یه متد داخل یه کلاس میخوایم استفاده کنیم بیایم از کل اون کلاس یه instance بگیریم و بعد بیام از اون متد استفاده کنیم.
There are a few key differences between static classes and normal (non-static) classes in C#:
کلاس های استاتیک فقط میتونن اعضای استاتیک داشته باشن. ولی در کلاس معمولی اعضا میتونن استاتیک یا معمولی باشن
کلاس های استاتیک نمیتونن توسط کلاس های دیگه ارث بری بشن.
دسترسی به کلاس استاتیک فقط از طریق اعضای استاتیک امکان پذیره.
خب حالا میرسیم به توضیحات بیشتر:
اینجا فرض کنید که یه کلاس person داریم که پراپرتی هایی مثل اسم و فامیل داره، حالا فرض کنید توی همین کلاس یه پراپرتی داریم به اسم جمعیت که میشه مجموع این person ها، خوب طبعتا این پراپرتی نمیتونه متعلق به یک شخص یا person باشه و یک پراپرتی کلی تر هستش، توی این موارد ما میایم پراپرتی رو به صورت static تعریفش میکنیم و به این شکل این پراپرتی تبدیل به یک پراپرتی global میشه.
یه نکته ی جالبی که همیشه یادتون باشه اینه که Console.WriteLine هم دقیقا به صورت static پیاده سازی شده برای همین ما میتونیم اینطوری ازش استفاده کنیم.