protect

ถ้าเอาบทความไปเผยแพร่แล้วไม่ให้เครดิต ดำเนินคดีด้วย พรบ. คอมพิวเตอร์ฉบับใหม่ ขั้นสูงสุดและไม่ยอมความครับ

วันอังคารที่ 25 สิงหาคม พ.ศ. 2558

Common Type System (CTS) ตอนที่ 1


จากบทความที่ผ่านมาแสดงให้เห็นว่า ไม่ว่าเราจะเขียนโปรแกรมด้วยภาษาอะไรในชุดของ .Net Framework ตัว compiler จะทำหน้าที่เป็นตัวเช็คไวยกรณ์ (syntax) แล้วจึงแปลง code ต้นฉบับมาเป็น Managed code ที่มีภาษา IL อยู่ข้างใน ดังนั้นเราหรือใครๆ ก็สามารถเขียนภาษาขึ้นมาเองได้ สิ่งที่ต้องทำเพียงแค่สร้าง compiler ที่แปลง ภาษาของเรานั้น ไปเป็น Managed code 

Microsoft ได้ลงทะเบียนที่ ecma เพื่อที่จะนำ .Net Framework ไปเป็นมาตรฐานเพื่อให้นักพัฒนาทั่วโลกสามารถเขียนภาษาของตัวเอง โดยเอกสารฉบับเต็มสามารถอ่านได้ที่ http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf 

หนึ่งในมาตรฐานที่ Microsoft ได้กำหนดไว้คือ Common Type System (CTS) ซึ่งภาษาใดๆ ก็ตามแต่ที่จะมาใช้ runtime ของ .Net Framework จะต้องทำตามกฏของ Common Type System โดยตัวโปรแกรมจะต้องเป็นรูปแบบของ Data Type คือในโปรแกรมจะต้องมีอย่างน้อย 1 Data Type 

Data Type ในที่นี้หมายถึง class น่ะครับ Microsoft จะมองว่า 1 class เป็น 1 Data Type

โดยที่ Type ที่จะใช้ runtime ของชุด .Net Framework จะต้องมี member ใน Type ที่มีคุณลักษณะดังนี้

1) field 
เป็นสมาชิกที่มีแค่ชนิดของ data type และก็ชื่อ

2) method 
เป็น function ที่มีการดำเนินงานภายใน Method จำเป็นต้องมี ชื่อ, signature และ modifiers

signature หรือ parameter ที่ส่งเข้ามาใน Method จะต้องระบุจำนวนและชนิดของ signature.

3) property
มีลักษณะเหมือนก้บ field แต่สามารถทำงานได้เหมือน method เราสามารถ set property ให้เป็น read only หรือ write only

4) event
สามารถที่จะมีกลไก การแจ้งเตือน ระหว่าง object กับ object

นอกจากนี้ Microsoft ยังกำหนด การเข้าถึงสมาชิกใน Type หรือ modifiers ดังนี้

1) Private
การเข้าถึงสมาชิกใน Type จะใช้ได้เฉพาะเพาะสมาชิกใน Type เท่านั้น

2) Family
การเข้าถึง สมาชิกใน Type จะต้องเป็นสมาชิกใน Type และมาจากการสืบถอด Type เท่านั้น 

ในภาษา C# เราจะใช้ protected เป็น modifiers ชนิด family

3) Family and assembly
member ชนิดนี้จะไม่มีใน C# แต่จะมีเฉพาะในภาษา IL เท่านั้น

4) Assembly
เป็นสมาชิกที่อนุญาติให้เข้าถึงได้ใน assembly เดียวกัน 

ในภาษา C# จะใช้ internal เป็น modifiers ชนิดนี้

5) Family or assembly
การ เข้าถึง สมาชิกใน Type จะต้องเป็นสมาชิกใน Type และมาจากการสืบถอด Type ภายใน assembly เท่านั้น 

ในภาษา C# เราจะใช้ protected internal เป็น modifiers ชนิด family or assembly

6) Public
สมาชิกใน Type สามารถ access ได้ทุกๆ ที และทุกๆ assembly.


พบกับตอนที่ 2 ในบทความหน้าครับ

TuChay

ไม่มีความคิดเห็น:

แสดงความคิดเห็น