محتویات یک کلاس در سی شارپ :
یک کلاس می تواند دارای هر کدام از 14 مورد زیر باشد که بعضی ضروری و برخی اختیاری یک کلاس می باشند .
1 . Constructors سازنده ها
2 . Constants ثابت ها
3 . Fields فیلدها ( متغیرها )
4 . Finalizers ( Destructors ) نهایی کننده ها یا ( مخرب ها )
5 . Methods روش ها
6 . Properties ویژگی ها
7 . Indexers ایندکسرها
8 . Operators عملگرها
9 . Events رویدادها
10 . Delegates نمایندگان
11 . Classes کلاس ها
12 . Interfaces رابط ها
13 . Structs ساختارها
14 . Enumerations نوع شمارشی
در این بخش
به یک کلاس استاتیک
می پردازیم کلاس
استاتیک کلاسی
است که اولا همه
اعضاء آن باید
استاتیک باشند ثانیا
برای دسترسی به
اعضاء یک کلاس
استاتیک لازم نیست
تا یک نمونه از
آن کلاس ساخته
شود بلکه فقط به
کمک نوشتن نام
کلاس و پس از آن
عملگر نقطه به
تمام اعضاء کلاس
دسترسی پیدا می
کنیم در ادامه
متن کامل یک کلاس
استاتیک به همراه
نحوه کاربرد آن
آمده
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(); } } }
کلاس : Class
کلاس مفهومی شبیه نقشه یک ساختمان دارد که خود به تنهایی مثلا قابل سکونت نیست بلکه بایستی یک نمونه ( ساختمان ) از روی آن ساخت و از آن نمونه ساخته شده استفاده کرد.یعنی در واقع کلاس یک Concept از شیء ایست که می خواهیم داشته باشیم .
یک کلاس دارای اعضائی است که این اعضاء به دو دسته تقسیم می شوند 1 . داده ها و 2 . عملکردها .
داده ها شامل فیلدها ( Fields) و خصوصیات ( properties ) و عملکردها نیز شامل رویدادها ( Events ) و متدها ( methods ) می باشند.
کلاس { فیلدها و خصوصیات - رویدادها و عملکردها }
یک کلاس با استفاده از کلید واژه class و به دنبال آن نامی برای کلاس و دو علامت { } تعریف می شود .
در مثال زیر کلاسی به نام MyClass تعریف شده که هیچ عضوی ندارد و در واقع هیچ کاری هم انجام نمی دهد.
class MyClass
{
}
همانطور که در بالا بیان شد کلاس دارای اعضایی است . قبل از اضافه کردن اعضاء درون کلاس به این نکته توجه داشته باشید که هر کلاس برای اجرا شدن حتماً به یک سازنده ( constructor) احتیاج دارد وگرنه کلاس ما بدون انجام هیچ واکنشی بدون استفاده باقی می ماند. یک سازنده بوسیله تعیین یک سطح دسترسی و نامی دقیقا مشابه نام کلاس و علامت () تعریف می گردد که می تواند دارای پارامتر و یا بدون پارامتر باشد.( در مثال زیر سازنده کلاس MyClass هیچ پارامتری دریافت نمی کند. ضمنا این Constructor بطور اتومتیک اجرا می شود )
نکته : سازنده کلاس می تواند پس از ساخت یک نمونه از کلاس نیز بطور دستی اجرا گردد که در ادامه به آن اشاره خواهد شد .
class MyClass
{
public MyClass()
{
}
}
دقت کنید : همانطور که در بالا بیان شد برای دسترسی به اعضاء یک کلاس و استفاده از عملکردهای آن می بایست ابتدا یک نمونه یا شیء( Object ) از آن کلاس را ساخت و سپس به کمک آن شیء به اعضاء کلاس دسترسی پیدا کرد.
using System;
namespace ClassTest
{
class Program
{
class MyClass
{
int nonStaticVariable;
static int staticVariable;
public void SetVars(int v1, int v2)
{
nonStaticVariable = v1;
staticVariable = v2;
}
public void Display()
{
Console.WriteLine("nonStaticVariable = {0} staticVariable = {1}", nonStaticVariable, staticVariable);
Console.ReadKey();
}
}
static void Main()
{
MyClass d1 = new MyClass();
MyClass d2 = new MyClass();
d1.SetVars(2, 4);
d1.Display();
d2.SetVars(15, 17);
d2.Display(); } } }
که پس از اجرا ابتدا شیء d1 و سپس با زدن اینتر شیء d2 اجرا می شوند. خروجی برنامه بصورت زیر می باشد.
nonStaticVariable = 2 staticVariable = 4
nonStaticVariable = 15 staticVariable = 17