دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

کلاس استاتیک

static :

کلاس استاتیک چه نوع کلاسی است و بکار بردن کلمه static قبل از نام کلاس چه تاثیری روی آن دارد

در مورد کلاس های معمولی و غیر استاتیک می دانیم که برای استفاده از توابع و فیلدهای آنها باید ابتدا یک نمونه از کلاس را بسازیم که بتوانیم به توابع و فیلدهای آن کلاس دسترسی داشته باشیم  اما در مورد کلاس های استاتیک لازم نیست (نمی توانیم) یک نمونه از کلاس بسازیم بلکه فقط کافیست تا با کمک نام کلاس به فراخوانی  توابع و فیلدهای آن بپردازیم . لازم به ذکر است که تمام اعضاء یک کلاس استاتیک باید استاتیک باشند . به یک نمونه ساده از یک کلاس استاتیک و نحوه دسترسی به آن در زیر توجه کنید.

public static class Rectangle

        {

 public static int CalculateArea(int width, int height) 

     { return width * height; }

        }

برای فراخوانی کلاس استا تیک بالا و استفاده از متد درون آن به روش زیر عمل میکنیم. در رویداد کلیک یک آبجکت با نوشتن نام کلاس و زدن نقطه به متد آن دسترسی پیدا کرده و با دادن پارامترهای دلخواه برگشتی بدست آمده را با کمک متد تو استرینگ به رشته تبدیل کرده تا مناسب چاپ روی برچسب باشد.

label1.Text= (Rectangle.CalculateArea(12,10)).ToString();

همانطور که می بینید ما بدون اینکه از کلاس Rectangle یک نمونه بسازیم ، می توانیم فقط با صدا زدن کلاس Rectangle و استفاده از متد CalculateArea و دادن پارامترهای آن از متد این کلاس استفاده کنیم. خروجی این متد عدد 120 می باشد که روی لیبل نمایش داده می شود.

کلاس استاتیک static class

در این بخش به یک کلاس استاتیک می پردازیم کلاس استاتیک کلاسی است که اولا همه اعضاء آن باید استاتیک باشند ثانیا برای دسترسی به اعضاء یک کلاس استاتیک لازم نیست تا یک نمونه از آن کلاس ساخته شود بلکه فقط به کمک نوشتن نام کلاس و پس از آن عملگر نقطه به تمام اعضاء کلاس دسترسی پیدا می کنیم در ادامه متن کامل یک کلاس استاتیک به همراه نحوه کاربرد آن آمده

using System;

namespace StaticClassTest {   

static class MathFunction

{   //معکوس عدد را برمی گرداند

static public double reciprocal(double num) {    return 1 / num;    }

//قسمت اعشاری عدد را برمی گرداند

static public double fracPart(double num) {    return num - (int)num;  }

//اعداد زوج را برمی گرداند

static public bool isEven(double num) {   return (num % 2) == 0 ? true : false; }

//اعداد فرد را برمی گرداند

static public bool isOdd(double num) {    return !isEven(num);  } }

class MainClass {  

public static void Main()

Console.WriteLine("Reciprocal of 5 is " + MathFunction.reciprocal(5.0));    

Console.WriteLine("Fractional part of 4.234 is " + MathFunction.fracPart(4.234));      

if (MathFunction.isEven(10))         Console.WriteLine("10 is even.");     

if (MathFunction.isOdd(5))           Console.WriteLine("5 is odd.");     

Console.ReadLine();  } } }