មេរៀន VC#.NET-Value និង Struct

មេរៀន VC#.NET-Value និង Struct
ក្នុងជំពូកនេះរៀនអំពីរបៀបធ្វើ:
-ប្រកាស Declare ប្រភេទការរាប់ enumeration
-បង្កើតនិងប្រើតំលៃនៃប្រភេទការរាប់ enumeration
-ប្រកាស Declare ប្រភេទ struct
-បង្កើតនិងប្រើតំលៃនៃប្រភេទ struct ។
1. ធ្វើការជាមួយការរាប់ Enumeration
ឧបមាថាអ្នកចង់បង្ហាញខែឆ្មាំក្នុងកម្មវិធី ។ អ្នកនឹងប្រើចំនួនគត់ 0, 1, 2, និហ 3 ដើម្បីតំណាង spring, summer, fall និង winter ។ ប្រព័ន្ធ system នេះនឹងធ្វើការប៉ុន្តែវាមិនប្រកបដោយអព្ភន្តញ្ញាណ និងបរាជ័យក្នុងពេលបង្ហាញ បញ្ហានេះ ។ ប្រសិនបើអ្នកប្រើចំនួនគត់តំលៃ 0 ក្នុង code វានឹងមិនជាធ្ងន់ធ្ងរនិង មានលក្ខណ:ពិសេស 0 ដែលបង្ហាញ spring ។ វានឹងមិនអាចជាដំណោះ
ស្រាយច្បាស់លាស់ ។ ឧទាហរណ៍ បញ្ហានឹងបញ្ឈប់ពេលដែលអ្នកប្រើតំលៃ ចំនួនគត់ខណ:ពេលដែល សរសេរ 0, 1, 2, និង​3 ។ ប្រើក្នុង C# គឺជាដំណោះ ស្រាយល្អប្រសើរ អ្នកអាចប្រើពាក្យ គន្លឹះ enum ដើម្បីបង្កើតប្រភេទការរាប់ (ជួនពេលខ្លះដែលហៅថាប្រភេទ enum) ដែលជាតំលៃកំណត់សំរាប់បង្កើត នៃឈ្មោះនិមិត្តរូប ។
ប្រកាសប្រភេទការរាប់ របៀបប្រការប្រភេទការរាប់ដែលហៅថា Season ដែលមានតំលៃត្រឹម ត្រូវគឺកំណត់ដោយឈ្មោះនិមិត្តិសញ្ញា Spring, Summer, Fall និង Winter:    enum Season{Spring,Summer,Fall,Winter} ឈ្មោះនិមិត្តិសញ្ញាត្រូវតែបង្ហាញជាគូរនៅក្នុងសញ្ញា braces ក្នុងសញ្ញា ក្បៀស ។  ការជ្រើសរើសការរាប់តំលៃការរាប់នីមួយៗបានបង្កើតតំលៃរួមជាមួយ
ធាតុប្រើ default ចំនួនចាប់ផ្តើម 0 សំរាប់ធាតុទីមួយក្នុងជំហាន 1 ។ អ្នកអាចប្រើ ប្រមូលចំនួនគត់ថេរ (ដូចជា 1) ជាមួយការរាប់ (ដូចជា Spring) ឧទាហរណ៍ បង្ហាញខាងក្រោមនេះ:
enum Season{Spring = 1,Summer, Fall,Winter}
ក្នុង version ខាងលើរបស់ Season តំលៃនៅក្រោម Spring, Summer, Fall និង Winter គឺជា 1, 2, 3 និង 4 ។ ខាងក្រោមនេះ version របស់ Season, Spring, Summer, Fall និង Winter មានតំលៃ 0, 1, 2 និង 3:
enum Season {Spring, Summer, Fall, Winter}
អ្នកអនុញ្ញាតផ្តល់ការរាប់ច្រើនឬមួយមានតំលៃនៅខាងក្រោមដូចគ្នា ឧទាហរណ៍ នៅក្នុងចក្រភពអង់គ្លេស United Kingdom ខែ fall ដែលហៅថា autumn ដែលអ្នកអាចសរសេរ code ដូចខាងក្រោមនេះ:
enum Season {Spring,Summer,Fall,Autumn= Fall, Winter }
 ជ្រើសរើសតំលៃមូលដ្ឋានរបស់តារាងការរាប់
កាលណាអ្នកប្រកាស declare ប្រភេទការរាប់ត្រឹមត្រូវតាមតំលៃដែល ផ្តល់អោយ int ។ ម្យ៉ាងវិញទៀតតំលៃខាងក្រោម defaults ទៅក្នុង int ។ អ្នក អាចជ្រើសរើសមូលដ្ឋានប្រភេទការរាប់របស់អ្នក ។ ឧទាហរណ៍ ដើម្បីប្រកាស declare ដែលមានប្រភេទខាងក្រោមរបស់ Season ដូចជាតំលៃតិចជាង int អ្នកអាចសរសេរ:
enum Season : short{Spring,Summer,Fall,Winter}
អ្នកអាចប្រើមូលដ្ឋានក្នុងការរាប់លើចំនួន 8 ប្រភេទចំនួនគត់ integer: byte, sbyte, short, ushort, int, uint, long ឬ ulong ។ គ្រប់តំលៃទាំងអស់ ការរាប់ត្រូវតែបំពេញនៅក្នុងលំដាប់ជួរដែលបានជ្រើសរើសមូលដ្ឋានប្រភេទ ។ ឧទាហរណ៍ ខាងក្រោមនេះនឹងបង្កើត compile-time error ពីព្រោះ byte.MaxValue + 1 គឺនៅក្រៅលំដាប់ range នៃ byte:
enum Season : byte{Spring,Summer,Fall,Winter = byte.MaxValue +1}
 ការប្រើប្រាស់ Enumeration ម្តងទៀតអ្នកត្រូវបានប្រកាស declare ប្រភេទការរាប់របស់អ្នក ។ អ្នកអាចប្រើឈ្មោះនៃការរាប់ដូចជាឈ្មោះប្រភេទពិតប្រាកដ៏ដូចជាប្រភេទផ្សេង ទៀត ។ ប្រសិនបើ Season គឺជាឈ្មោះរបស់ប្រភេទការរាប់ បួន អ្នកអាចបង្កើត អថេរនៃប្រភេទ Season និង parameters នៃប្រភេទ Season ដូចបង្ហាញក្នុង ឧទាហរណ៍នេះ:
enum Season { Spring, Summer, Fall, Winter }
class Example
{
public void Method(Season parameter)
{
Season localVariable;

}
private Season currentSeason;
}
ប្រភេទការរាប់គឺជាប្រភេទតំលៃ ។ នេះមានន័យថាអថេរការរាប់ ចាប់ ដាក់តំលៃរបស់វាដោយផ្ទាល់នៅលើ stack ។ ការផ្តល់អោយកំណត់ច្បាស់
លាស់អនុវត្តទៅអថេរការរាប់ដែលទើបតែអនុវត្តទៅអថេរទាំងអស់ផ្សេងទៀត ។
Season colorful;
Console.WriteLine(colorful);//compile time error
មុនពេលអ្នកអាចប្រើតំលៃនៃអថេរការរាប់ enumeration variable វា ត្រូវតែកំណត់ចែងចែកតំលៃច្បាស់លាស់ ឧទាហរណ៍:
Season colorful = Season.Fall;
Console.WriteLine(colorful); // writes out ‘Fall’
ក្នុងលំហាត់ខាងក្រោមអ្នកនឹងធ្វើការជាមួយកម្មវិធីប្រើប្រាស់ console application និងប្រកាស declare ហើយនិងប្រើ enumeration class ដែល បង្ហាញពីខែ months នៃឆ្នាំ year ។
បង្កើតនិងប្រើប្រភេទការរាប់ enumeration type
1. ចាប់ផ្តើមចូល Start Microsoft Visual Studio .NET ។
2. បើក StructsAndEnums project ដែលមានក្នុងទីតាំង \Microsoft Press\Visual C# Step by Step\Chapter 9\StructsAndEnums folder ក្នុង My Documents folder របស់
អ្នក ពេលនោះ StructsAndEnums project បានបើកឡើង ។
3. ក្នុង Code pane បើក file ប្រភព Month.cs ។ ប្រភពដើមផ្ទុកក្នុង empty namespace ដែលហៅថា StructsAndEnums ។
4. ក្នុង Code pane បន្ថែមប្រភេទការរាប់ enumeration ដែលហៅថា Month នៅក្នុង StructsAndEnums namespace ។  12 តួព្យញ្ជន: ការរាប់របស់ខែ Month គឺ January ទៅដល់ December ។ Month enumeration នឹងបង្ហាញច្បាស់ដូចខាងក្រោមនេះ:
namespace StructsAndEnums
{
enum Month
{
January, February, March, April,
May, June, July, August,
September, October, November, December
}
}
5. ក្នុង Code pane បើកប្រភព file Main.cs រួចហើយក្នុងទីតាំងរបស់ Entrance method ។ ដូចលំហាត់ពីមុន Main method ហៅ Entrance method និងភ្ជាប់ exceptions ។ ក្នុង Code pane បន្ថែម statement មួយទៅអោយ Entrance method ដែលប្រកាស declares អថេរដែលហៅដំបូងនៃប្រភេទ Month និងចាប់ផ្តើមវាទៅ ក្នុង Month.January ។ បន្ថែម statement ផ្សេងទៀតដែលសរសេរ តំលៃនៃអថេរដំបូងទៅ console ។  Entrance method នឹងបង្ហាញ ដូចខាងក្រោមនេះ:
static void Entrance()
{
Month first = Month.January;
Console.WriteLine(first);
first++;
Console.WriteLine(first);
}
7. នៅលើ Debug menu ចុចលើ Start Without Debugging ។ កម្មវិធី Visual Studio .NET builds និងរត់ដំណើរការ ។
8. បញ្ជាក់ថាពាក្យ January គឺត្រូវបានសរសេរទៅអោយ console ។
9. ចុចលើ key ណាមួយ សន្លឹក console បិទអ្នកនឹងត្រឡប់ទៅក្នុង កម្មវិធី Visual Studio .NET ។
2. ធ្វើការជាមួយប្រភេទ Struct
មានមធ្យោបាយជាច្រើនដើម្បីបង្កើតប្រភេទតំលៃកម្មសិទ្ធិក្នុង C# ។ អ្នក អាចប្រើពាក្យគន្លឹះ struct ។  ដែល struct (ពាក្យកាត់របស់ structure) អាច មាន fields, methods និង Constructors របស់វាជាកម្មសិទ្ធិផ្ទាល់ ។
ការប្រកាសប្រភេទ Struct
ដើម្បីប្រកាស declare ប្រភេទកម្មសិទ្ធិផ្ទាល់ struct អ្នកប្រើ struct បន្ទាប់មកមានឈ្មោះនៃប្រភេទ និង struct រវាងសញ្ញាបើក opening និង និងសញ្ញាបិទ closing brace ។ ឧទាហរណ៍ struct ដែលហៅម៉ោង Time ផ្ទុកក្នុង 3 public int fields ដែលហៅថា hours, minutes និង seconds:
struct Time
{
public int hours, minutes, seconds;
}
ឧទាហរណ៍ នរណាក៍អាចបង្កើតតំលៃនាទី minutes ឬ វិនាទី seconds ដែលធំជាង 60 ។ ប៉ុន្តែគំនិតល្អប្រសើរដើម្បីបង្កើត fields private និងផ្តល់ struct របស់អ្នកជាមួយ constructors និង methods ដូចបង្ហាញក្នុង ឧទាហរណ៍ខាងក្រោមនេះ:
struct Time
{
public Time(int hh, int mm, int ss)
{
hours = hh % 24;
minutes = mm % 60;
seconds = ss % 60;
}
public int Hours()
{
return hours;
}
private int hours, minutes, seconds;
}
ស្វែងយល់ពីការខុសគ្នារវាង Struct និង​ Class
struct និង class គឺជាប្រភេទដែលប្រហាក់ប្រហែលគ្នាមានសារ:
សំខាន់ខុសគ្នា ។  អ្នកមិនអាចប្រកាស declare default constructor (ដូចជា constructor មួយមិនមាន parameters) សំរាប់ប្រើជាមួយ struct ។ ឧទាហរណ៍ ខាងក្រោមនេះនិង compile ប្រសិនបើម៉ោង Time គឺជា class មួយប៉ុន្តែម៉ោង Time គឺជា struct មួយដែលវាបរាជ័យ fails ពេលធ្វើ compile:
struct Time
{
public Time() { … } //compile time error
}
ប្រសិនបើមិនបានធ្វើ initialize field ក្នុង class constructor មួយ នោះ compiler និង automatically initialize វាទៅ 0, false ឬ null ។ ទោះបីជាយ៉ាងណាក៏ដោយ ប្រសិនបើអ្នកមិនបានធ្វើ initialize field ក្នុង struct constructor ពេលនោះ compiler នឹងមិនចាប់ផ្តើម initialize សំរាប់ អ្នក ។ មានន័យថាអ្នកត្រូវតែចាប់ផ្តើមគ្រប់ fields ទាំងអស់ នៅក្នុង struct constructors ឬក៏អ្នកទទួលបាន compile-time error ។
struct Time
{
public Time(int hh, int mm)
{
hours = hh;
minutes = mm;
}// compile time error: seconds not initialized
private int hours, minutes, seconds;
}
ក្នុង class អ្នកអាចចាប់ផ្តើម initialize ក្នុងចំណុចនៃការប្រកាស ។ ក្នុង struct អ្នកមិនអាចធ្វើបាន  ។ ខាងក្រោមនេះជាឧទាហរណ៍ នឹង compile ប្រសិនបើ Time គឺជា class មួយប៉ុន្តែម៉ោង Time គឺជា struct វាបណ្តាលមក ពី compile-time error :
struct Time
{
private int hours = 0;// compile time error
private int minutes;
private int seconds;
}
ការប្រកាសអថេរ Struct
បន្ទាប់អ្នកបានប្រកាស declare ប្រភេទ struct របស់អ្នក អ្នកអាចប្រើ
ឈ្មោះនៃ struct ដូចជាឈ្មោះប្រភេទពិតនៅក្នុងប្រភេទផ្សេងទៀត ។ ប្រសិនបើ  ម៉ោង Time គឺជាឈ្មោះនៃប្រភេទ struct របស់អ្នក អ្នកអាចបង្កើតអថេរនៃ
ប្រភេទម៉ោងTime ហើយ fields នៃប្រភេទម៉ោងTime និង parameters នៃប្រភេទម៉ោង Time ត្រូវបានបង្ហាញដូចក្នុងឧទាហរណ៍នេះ:
struct Time
{
public Time(int hh, int mm, int ss)
{
hours = hh % 24;
minutes = mm % 60;
seconds = ss % 60;
}
public int Hours()
{
return hours;
}

private int hours, minutes, seconds;
}
ឧទាហរណ៍ ម៉ោងរបស់យើង Time struct ផ្ទុក int fields ដែលហៅ ថា hours, minutes និង seconds ។ កាលណាអ្នកបានប្រកាស declare តំបន់អថេរនៃប្រភេទម៉ោង Time អ្នកអាចប្រកាសច្បាស់លាស់ declaring បីតំបន់អថេរ int ដែលហៅថា now.hours, now.minutes និង now.seconds ដែលទាំងអស់មាននៅលើ stack:
Time now;
មិនមាន objects និង heap memory ត្រូវបានជាប់ទាក់ទង់ដូច
បង្ហាញក្នុងដ្យាក្រាម diagram ខាងក្រោមនេះ:
aស្វែងយល់ពីនិយមន័យ Struct
ការផ្តល់កំណត់តួនាទីច្បាស់លាស់សំរាប់អថេរ struct គឺជាធម្មជាតិ ដែលផ្តល់អោយនៃការផ្តុំនៃការកំណត់តួនាទីសំរាប់គ្រប់ fields ។ កាលណាអ្នក បានប្រកាសអថេរ struct ហើយ fields នៅក្នុងអថេរមិនអាច initialized និង កំណត់តំលៃរបស់វាបាន ។ ឧទាហរណ៍ខាងក្រោមនេះនឹងមិនអាច compile បានព្រោះតំលៃអាច read  now.hours មុនពេលវាត្រូវាបានកំណត់ផ្តល់អោយ:
Time now = new Time(12, 30);
aចំលងអថេរ Structure Variable
Time now = new Time(12, 30);
Time copy = now;
aប្រសិនបើអ្នកផ្តល់ដំលៃច្បាស់លាស់ទៅអោយ struct field ដែល field អាចអានប៉ុន្តែ fields ផ្សេងទៀតនៅសេសសល់មិន uninitialized ។ ឧទាហរណ៍ :
Time now;
Time copy = now; //compile time error: now unassigned
ហៅ  Struct Constructors
វាជាមធ្យោបាយងាយស្រួលដើម្បី initialize ក្នុង fields ទាំងអស់ដែល នៅក្នុងអថេរ struct គឺហៅទៅក្នុង default របស់ struct ។ ដូចជាពន្យល់ ក្នុងជំពូកនេះ default constructor សំរាប់ struct ដែលមានរួចស្រេចនិង តែងតែសំរាប់ធ្វើ initializes ក្នុង struct fields ទាំងអស់ទៅ 0, false ឬ null  ដែលមានបង្ហាញក្នុងឧទាហរណ៍ខាងក្រោមនេះ:
Time now = new Time();
Console.WriteLine(now.hours);//compiles okay, writes out 0
Console.WriteLine(now.minutes);//compiles okay,writes out 0
Console.WriteLine(now.seconds);//compiles okay, writes out 0
The following illustration shows the effect of this example.
កាលណាអ្នកហៅ constructor មួយអ្នកត្រូវតែមានពាក្យគន្លឹះ new ពីមុនមិនអាចប្តូរតំលៃ struct ដែលមានក្នុង stack ។ ពាក្យគន្លឹះ new មាន ភាពខុសគ្នា: សំរាប់ class មួយវាចំណាយ memory ពី heap  ចំណែកឯ struct វាចំណាយ memory ពី stack ។ ប្រសិនបើអ្នកត្រូវបានសរសេរ struct constructor ជាកម្មសិទ្ធិរបស់អ្នក អ្នកអាចប្រើ initialize អថេរ struct ។
ដូចបង្ហាញក្នុងឧទាហរណ៍ជំពូកខាងលើ struct constructor តែងតែជាក់លាក់ initialize គ្រប់ fields របស់វាទាំងអស់ ឧទាហរណ៍:
struct Date
{
public Date(int ccyy, Month mm, int dd)
{
this.year = ccyy – 1900;
this.month = mm;
this.day = dd – 1;
}
private int year;
private Month month;
private int day;
}
ឧទាហរណ៍ខាងក្រោមនេះ initializes ដែលហៅកំណត់ច្បាស់លាស់:
Time now = new Time(12, 30);
Console.WriteLine(now.hours);//compiles okay, writes out 12
Console.WriteLine(now.minutes);//compiles okay, writes out 30
Console.WriteLine(now.seconds);//compiles okay, writes out 0
ខាងក្រោមនេះបង្ហាញប្រតិ្តបត្តិនៃឧទាហរណ៍:
អ្នកអនុញ្ញាតដើម្បីធ្វើ initialize ឬផ្តល់អថេរ struct មួយទៅអថេរ struct ផ្េសងទៀតប៉ុន្តែប្រសិនបើអថេរ struct មានតំលៃដែលផ្តល់អោយ ត្រឹមត្រូវ (ប្រសិនបើ fields ទាំងអស់របស់វាបានកំណត់តំលៃច្បាស់លាស់ ខាងក្រោមនេះជាឧទាហរណ៍ compiles ឥឡូវនេះបានផ្តល់អោយវា ។
Time now = new Time(12,30);
Time copy = now;
aឧទាហរណ៍ខាងក្រោមនេះគឺជា fails ក្នុងពេល compile ពីព្រោះវា
គ្មានកំណត់តំលៃច្បាស់លាស់:
Time now;
Time copy = now; //compile time error:now unassigned
មានមធ្យោបាយពីរយ៉ាងដើម្បីបង្កើតតំលៃក្នុង C# ។ អ្នកអាចប្រើ ការរាប់ enumerations ឬអ្នកអាចប្រើ structs ។ ពីព្រោះវាមានប្រភេទ primitive ដូចជា int ដែលជាតំលៃពិត structs មិនអាចក្លែងបន្លំបាន ។ ឧទាហរណ៍ ពាក្យគន្លឹះ int គឺជាតំលៃពិតច្បាស់លាស់មិនអាចកែប្រែបាន ប្រភេទ struct ដែលហៅថា Int32 ដែលមាននៅក្នុងប្រព័ន្ធ System namespace ម្យ៉ាងទៀតអ្នកអាចសរសេរបានដូចនេះ:
int number = 42;
Or you can write this:
System.Int32 number = 42;
int firstWay = new? System.Int32();
int secondWay = new Int32();//assuming a using System; directive
int thirdWay = new int();
int fourthWay = 0;
នេះវាសមមូលមានន័យថា System.Int32 ផ្ទុក static field ឬ method (ដូចជា Parse) អ្នកអាចអនុញ្ញាតចូលក្នុង field ឬ method ដោយប្រើពាក្យ
គន្លឹះ int ឬដោយប្រើ System.Int32 ។ ឧទាហរណ៍ ខាងក្រោមនេះមាន statements ដែលសមមូលគឺ :
int hour = System.Int32.Parse(Console.ReadLine());
int hour = int.Parse(Console.ReadLine());
តារាងខាងក្រោមនេះគឺគ្រប់ប្រភេទ primitive ទាំងអស់និងមានតំលៃស្មើរគ្នា struct ឬ class ។
ពាក្យគន្លឹះប្រភេទសមមូលClass ឬ struct
boolSystem.Booleanstruct
byteSystem.Bytestruct
decimalSystem.Decimalstruct
doubleSystem.Doublestruct
floatSystem.Singlestruct
intSystem.Int32struct
longSystem.Int64struct
objectSystem.Objectclass
sbyteSystem.SBytestruct
shortSystem.Int16struct
stringSystem.Stringclass
uintSystem.UInt32struct
ulongSystem.UInt64struct
ushortSystem.UInt16struct
ក្នុងលំហាត់ខាងក្រោមនេះអ្នកនឹងបង្កើតនិងប្រើប្រភេទ struct បង្ហាញ ពីកាលបរិច្ឆេទ ។
បង្កើតនិងប្រើប្រភេទ type
1. បើកក្នុង StructsAndEnums project ដែលមានទីតាំងក្នុង \Microsoft Press\Visual C# Step by Step\Chapter 9\StructsAndEnums folder ក្នុង My Documents folder របស់
អ្នក ។
2. ក្នុង Code pane បើក Date.cs source file ។
3. ក្នុង Code pane បន្ថែម struct ដែលហៅថា Date នៅក្នុង StructsAndEnums namespace ។ struct នេះនឹងផ្ទុកបី private fields: មួយហៅថា year នៃប្រភេទ int និងមួយទៀត month នៃប្រភេទ Month (ដូចដែលប្រកាស declare លំហាត់ពីមុនមក) និងមួយទៀតហៅថា day នៃប្រភេទ int ។  Date struct និងមើល ដូចខាងក្រោមនេះ:
namespace StructsAndEnums
{
struct Date
{
private int year;
private Month month;
private int day;
}
}
4. ក្នុង Code pane បន្ថែម public constructor មួយទៅក្នុង Date struct ។ ដែល constructor នេះយកចេញពី parameters បីគឺ: មួយ int ហៅថា ccyy សំរាប់ year មួយទៀត Month ដែលហៅថា mm សំរាប់ month និងមួយទៀត int ហៅថា dd សំរាប់ day ។ ប្រើ parameters ទាំងបីនេះសំរាប់ធ្វើ initialize បានប្រាកដ ។ year field នៃ Y បង្ហាញ year Y + 1900 ដូច្នេះអ្នកនឹងត្រូវការធ្វើ initialize year field ទៅតំលៃ ccyy – 1900 ។  day field នៃ D បង្ហាញ day D + 1, ដូច្នេះអ្នកនឹងត្រូវការដើម្បីធ្វើ initialize day field ទៅអោយតំលៃ dd – 1 ។ Date struct នឹងបង្ហាញដូចខាងក្រោមនេះ:
namespace StructsAndEnums
{
struct Date
{
public Date(int ccyy, Month mm, int dd)
{
year = ccyy – 1900;
month = mm;
day = dd – 1;
}
private int year;
private Month month;
private int day;
}
}
5. ក្នុង Code pane បន្ថែម public method ហៅថា Write ទៅក្នុង Date struct ។ method នេះយកមិនមាន arguments និងមិនត្រឡប់ វិញ ។ វាសរសេរ date ទៅក្នុង console ។ ចាំថា តំលៃនៃ year field បង្ហាញ year + 1900 និងតំលៃ day field បង្ហាញ day + 1 ។ Write method នឹងបង្ហាញដូចខាងក្រោមនេះ:
namespace StructsAndEnums
{
struct Date
{
public void? Write()
{
Console.Write(month);
Console.Write(” “);
Console.Write(day? +? 1);
Console.Write(” “);
Console.Write(year? +? 1900);
}
}
}
6. ក្នុង Code pane បើកប្រភព file Main.cs រួចហើយចូលក្នុងទីតាំង Entrance method ។
7. ក្នុង Code pane បន្ថែម statement មួយទៅក្នុង Entrance ដែល ប្រកាស declare តំបន់អថេរដែលហៅថា defaultDate និង initializes វាទៅក្នុង Date តំលៃដែលបានស្ថាបនារួចដោយប្រើ  defaultDate constructor ។ បន្ថែម statement ផ្សេងទៀតទៅក្នុង Entrance ដើម្បីសរសេរ defaultDate ទៅក្នុង console ដែលហៅ  Write method របស់វា ។​ បន្ថែម statement ផ្សេងទៀតទៅក្នុង Entrance ដើម្បីសរសេរបន្ទាត់ console ថ្មីដែលហៅថា Console.WriteLine ។ Entrance method នឹងឃើញច្បាស់លាស់ ដូចខាងក្រោមនេះ:

namespace StructsAndEnums
{
class Application
{
static void Entrance()
{
Date? defaultDate = new Date();
defaultDate.Write();
Console.WriteLine();
}
}
}
8. នៅលើ Debug menu ចុចលើ Start Without Debugging ។ កម្មវិធី Visual Studio .NET builds និងរត់ដំណើរការ ។
9. បញ្ជាក់ថា January ដែលអនុញ្ញាត January 1 1900 ត្រូវបាន
សរសេរទៅ console ។
10. ចុចលើ key ណាមួយត្រឡប់ទៅកម្មវិធី Visual Studio .NET
11. ក្នុង Code pane ត្រឡប់ទៅក្នុងEntrance method ។
12. ក្នុង Code pane បន្ថែមបីឬច្រើនជាង statements ទៅ Entrance method ។ ដែល statement ទីមួយនឹងប្រកាស declare ទីតាំងអថេរដែលហៅថា halloween និង initialize វាទៅ October 31 2003 ។  statement ទីពីរនឹងសរសេរ halloween ទៅ console ដែលហៅថា Write method ។ និង statement ទីបីនឹងសរសេរបន្ទាត់
ថ្មីទៅ console ។ Entrance method នឹងបង្ហាញជាក់ច្បាស់ដូចខាង
ក្រោមនេះ :
namespace StructsAndEnums
{
class Application
{
static void Entrance()
{
Date halloween = new Date(2003,Month.October, 31);
halloween.Write();
Console.WriteLine();
}
}
}
13. នៅលើ Debug menu ចុចលើ Start Without Debugging ។ កម្មវិធី Visual Studio .NET builds និងរត់ដំណើរការ ។
សង្ខេបជំពូកទី ៩
ប្រធានបទ
ការអនុវត្តន៍
ប្រកាស Declare  ប្រភេទ ការរាប់ enumeration សរសេរពាក្យគន្លឹះ enum  តាមឈ្មោះ   នៃប្រភេទតាមគូរនៃសញ្ញាគ្នាដែល នផ្ទុកសញ្ញាក្បៀស listនៃការ រាប់ enumeration enum Season {Spring, Summer, Fall, Winter }
ប្រកាស Declare អថេរការរាប់ enumeration សរសេរឈ្មោះនៃប្រភេទការរាប់ enumeration នៅខាងឆ្វេងតាម ឈ្មោះនៃអថេរតាមសញ្ញា semicolon ឧទាហរណ៍:
Season
currentSeason;
Initialize ឬផ្តល់ការរាប់ enumeration និង តំលៃអថេរ variable តែងតែសរសេរឈ្មោះនៃការរាប់ enumeration តួរអក្សព្យញ្ជន: ឈ្មោះនៅក្នុងបន្សំជាមួយឈ្មោះ នៃប្រភេទការរាប់ enumeration ដែលជាកម្មសិទ្ធិ ឧទាហរណ៍:
currentSeason = Season; // compile time error
currentSeason = Season.Spring; // okay
currentSeason = Season; // compile time error
currentSeason = Season.Spring; // okay
ប្រកាស Declare ប្រភេទ Struct សរសេរពាក្យគន្លឹះ struct តាមឈ្មោះ នៃប្រភេទ struct តាម body នៃ struct (ដូចជា constructors, methods, និង fields) ឧទាហរណ៍:
struct Time
{
public Time(int hh, int mm, int ss)
{ … }

private int hours, minutes, seconds;
}
ប្រកាស Declare struct និងអថេរ សរសេរឈ្មោះនៃប្រភេទ struct តាមឈ្មោះនៃអថេរតាមសញ្ញា semicolon ។ ឧទាហរណ៍: Time now;
Initialize ឬផ្តល់អថេរ struct ទៅតំលែ value Initialize ឬ ផ្តល់អថេរទៅតំលៃ struct ដែលបង្កើតដែលហៅថា struct constructor ។ ឧទាហរណ៍ : Time lunch = new Time(12, 30, 0);
lunch = new Time(12, 30, 0);

Related product you might see:

Share this product :

Post a Comment

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. ទឹកអំពៅ - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger