មេរៀនទី១០: Value និង Struct

មេរៀនទី១០: 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
bool System.Boolean struct
byte System.Byte struct
decimal System.Decimal struct
double System.Double struct
float System.Single struct
int System.Int32 struct
long System.Int64 struct
object System.Object class
sbyte System.SByte struct
short System.Int16 struct
string System.String class
uint System.UInt32 struct
ulong System.UInt64 struct
ushort System.UInt16 struct

ក្នុងលំហាត់ខាងក្រោមនេះអ្នកនឹងបង្កើតនិងប្រើប្រភេទ 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នៃការ រាប់ enumerationenum 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);