පංතියක් (Class) යනු නිශ්චිත වස්තුවක සැලැස්මක් වැනිය. සැබෑ ලෝකයේ සෑම වස්තුවකටම යම් වර්ණයක්, හැඩයක් සහ ක්රියාකාරීත්වයක් ඇත. උදාහරණයක් ලෙස Ferrari නම් සුඛෝපභෝගී මෝටර් රථය. Ferrari යනු සුඛෝපභෝගී මෝටර් රථ වර්ගයේ වස්තුවකි(Object). සුඛෝපභෝගී මෝටර් රථය වේගය, වර්ණය, හැඩය, අභ්යන්තරය වැනි නිශ්චිත ලක්ෂණ නියම කරන පන්තියකි. එබැවින් එම අවශ්යතා සපුරාලන මෝටර් රථයක් සාදන ඕනෑම සමාගමක් සුඛෝපභෝගී මෝටර් රථ වර්ගයේ වස්තුවකි.
උදාහරණයක් ලෙස, BMW, Lamborghini, Cadillac යන සෑම මෝටර් රථයක්ම ‘Luxury Car’ නමින් හැඳින්වෙන පන්තියේ (Class) වස්තුවකි(Object). ‘සුඛෝපභෝගී මෝටර් රථය’ පන්තියක් වන අතර සෑම භෞතික මෝටර් රථයක්ම සුඛෝපභෝගී මෝටර් රථ පන්තියේ (class) වස්තුවකි (Object).
ඒ හා සමානව, Object Oriented Programming වල, class එකක් විසින් ඇතැම් properties, fields, events, method නිර්වචනය කරයි.
වෙනත් properties, fields, events, method වල විචල්යයන් කාණ්ඩගත කිරීමෙන් ඔබේම අභිරුචි වර්ග නිර්මාණය කිරීමට class එකකින් ඔබට හැකියාව ලබා දෙයි.
C# හි, පන්ති (class) මූල පදය භාවිතා කිරීමෙන් පන්තියක් අර්ථ දැක්විය හැකිය.
public class MyClass { public string myField = string.Empty; public MyClass() { } public void MyMethod(int parameter1, string parameter2) { Console.WriteLine("First Parameter {0}, second parameter {1}", parameter1, parameter2); } public int MyAutoImplementedProperty { get; set; } private int myPropertyVar; public int MyProperty { get { return myPropertyVar; } set { myPropertyVar = value; } } }
පහත රූපයේ දැක්වෙන්නේ C# class එකක වැදගත් කොටස්ය.
C# Access Modifiers
class, method, property, field සහ අනෙකුත් සාමාජිකයින්ගේ ප්රකාශය මත access modifiers යොදනු ලැබේ. ඔවුන් පන්තියේ සහ එහි සාමාජිකයන්ගේ (members) ප්රවේශ්යතාව (accessibility) නිර්වචනය කරයි. (public) පොදු,(private) පෞද්ගලික,(protected) ආරක්ෂිත සහ (internal) අභ්යන්තර යනු C # හි access modifiers වේ.
C# Field
field යනු අගය රඳවා ගත හැකි පන්ති මට්ටමේ විචල්යයකි(variable). සාමාන්යයෙන් ක්ෂේත්ර සාමාජිකයින්ට (field members) පුද්ගලික (public) access modifier එකක් තිබිය යුතු අතර property එකක් සමඟ භාවිතා කළ යුතුය.
C# Constructor
class එකකට parameterized හෝ parameter less constructors තිබිය හැකිය. ඔබ classes එකකින් object එකක් නිර්මාණය කරන විට constructor එක කැඳවනු ලැබේ. access modifier එක සහ class name භාවිතා කිරීමෙන් constructor එක අර්ථ දැක්විය හැකිය. <access modifiers> <class name>(){ }
class MyClass { public MyClass() { } }
C# Method
පහත දැක්වෙන template එක භාවිතයෙන් method එකක් අර්ථ දැක්විය හැකිය:
{access modifier} {return type} MethodName({parameterType parameterName})
public void MyMethod(int parameter1, string parameter2) { // write your method code here.. }
Property
පහත දැක්වෙන පරිදි property එකකට getters සහ setters භාවිතා කර අර්ථ දැක්විය හැකිය:
private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar; } set { _myPropertyVar = value; } }
property private field ආවරණය කරයි. එය යටින් පවතින ක්ෂේත්රයේ වටිනාකම ලබා ගැනීමට ({get ලබා ගන්න) සහ යටින් පවතින ක්ෂේත්රයේ අගය සැකසීමට ({set සකසන්න) සපයයි. ඉහත උදාහරණයේ දී, _myPropertyVar යනු කෙලින්ම ප්රවේශ විය නොහැකි පුද්ගලික ක්ෂේත්රයකි. එය ප්රවේශ විය හැක්කේ MyProperty හරහා පමණි. මේ අනුව, MyProperty _myPropertyVar සමඟ සම්බන්ධ වේ.
පහත උදාහරණයේ දී මෙන්, ලබා ගැනීමේ (getter) සහ සැකසීමේදී(setter) ඔබට අමතර එකතු කිරීමේ තර්කනයක් ද යෙදිය හැකිය.
private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar / 2; } set { if (value > 100) _myPropertyVar = 100; else _myPropertyVar = value; ; } }
Auto-implemented Property
C# 3.0 සිට, ඔබට යම් තර්කනයක් (logic) ලබා ගැනීමට(get) හෝ සැකසීමට(set) අවශ්ය නැතිනම් property ප්රකාශනය පහසු කර ඇත.
පහත දැක්වෙන්නේ එවැනි තර්කනයක් යොදා නොමැති සාමාන්ය property එකක උදාහරණයකි:
public int MyAutoImplementedProperty { get; set; }
ඊළග tutorial එකෙන් අපි බලමු කොහොමද variable use කරන්නේ කියලා.