รู้จักต้นแบบหรือคลาส จะเขียนโปรแกรม C# ได้ดี

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

Suphot Sawattiwong Array ใน C# Suphot Sawattiwong
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
บทที่ 2 รหัสควบคุมและการคำนวณ
โครงสร้างภาษาซี เบื้องต้น
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
บทที่ 3 ตอนที่ 1 คำสั่งเงื่อนไขและการตัดสินใจ(p
Object and classes.
รับและแสดงผลข้อมูล.
05_3_Constructor.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ครั้งที่ 7 Composition.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
Selected Topics in IT (Java)
การสืบทอด (Inheritance)
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
OOP (Object-Oriented Programming)
C# Programming Exceed Camp: Day 3.
Inheritance การสืบทอดคลาส
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
ตัวแปรกับชนิดของข้อมูล
การแปลงข้อมูลใน Excel เป็นฐานข้อมูลใน Access
2. เริ่มต้นใช้ Visual C# 2010 Express
โครงสร้างข้อมูลพื้นที่สุด ที่ไม่เคยเลย จะไม่ใช้อาร์เรย์
ให้เกิดความผิดพลาดน้อยที่สุด อย่างน้อยให้โปรแกรมทำงานต่อไปได้
เมธอดคือหน้าที่การงานของวัตถุให้เรียกใช้
พื้นฐานการโปรแกรม ต้องทราบการใช้คำสั่ง การควบคุม
3. ชนิดข้อมูล และการดำเนินการกับข้อมูล
การรับและพิมพ์ข้อมูลเบื้องต้น
ประวัติความเป็นมาภาษาซี
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
ตัวแปรกับชนิดของข้อมูล
Method of Class อ.สุพจน์ สิงหัษฐิต
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
Object-Oriented Programming
บทที่ 3 การสร้าง Appication แบบ Windows Form
หลักการเขียนโปรแกรม ( )
คำสั่งรับค่าและฟังก์ชันทางคณิตศาสตร์
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Java Programming Java Structure and Datatype,Variable
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
โครงสร้าง ภาษาซี.
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
Object-Oriented Programming
เมธอดคือหน้าที่การงานของวัตถุให้เรียกใช้
คอนสตรัคเตอร์ (Constructor)
การจัดการกับความผิดปกติ
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
เริ่มต้นเขียนโปรแกรมภาษาจา วา (Introduction to JAVA Programming)
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
ใบสำเนางานนำเสนอ:

รู้จักต้นแบบหรือคลาส จะเขียนโปรแกรม C# ได้ดี 8. Class รู้จักต้นแบบหรือคลาส จะเขียนโปรแกรม C# ได้ดี C# Programming with Visual C# 2010 Express

การสร้าง คลาส อ๊อปเจ็ค อโนนิมัสคลาส การสร้างคอนสตรักเตอร์ เป้าหมายการเรียนรู้ การสร้าง คลาส อ๊อปเจ็ค อโนนิมัสคลาส การสร้างคอนสตรักเตอร์ การสร้างค่าสเตติกของคลาส การควบคุมการมองเห็นของคลาส พร็อบเพอร์ตี้และอินเด็กเซอร์ พาร์เทียลคลาส และเมทธอด คลาสซ้อนคลาส C# Programming with Visual C# 2010 Express

การสร้างคลาส สร้างแอปพลิเคชั่น เลือเป็น คอนโซลแอปฯ คลิกเลือก Project > Add Class เขียน ตามโค้ด 8.2 class Customer { public string name; //field public void Order()//method Console.WriteLine("I order product1."); } การสร้างคลาสแบบนี้เป็นการแยกไฟล์ ควรให้ชื่อไฟล์ เหมือนกับชื่อคลาส ซึ่งจะสร้างรวมกับไฟล์ หลักก็ได้ C# Programming with Visual C# 2010 Express

สร้างอ๊อปเจ็ค using System; namespace ConsoleApplication1 { class Program static void Main(string[] args) Customer c1 = new Customer(); } C# Programming with Visual C# 2010 Express

ใช้งานอ๊อปเจ็ค ผ่านเมธอหลัก static void Main(string[] args) { Customer c1 = new Customer(); c1.name = "Monchai"; c1.Order(); } C# Programming with Visual C# 2010 Express

สร้างอโนนิมัสคลาส var contacts = new[ ] { new { Name = "Monchai", Tel = new[ ] { "016-555-5555", "095-555-5551" } }, Name = "Chartree", Tel = new[] { "080-555-5559" } } }; C# Programming with Visual C# 2010 Express

การสร้างคอนสตรักเตอร์ (Constructor) ชื่อของคอนสตรักเตอร์จะมีชื่อเหมือนชื่อคลาสตัวเอง คอนสตรักเตอร์จะทำงานเสมอ แม้ไม่ได้เขียนไว้ คอนสตักเตอร์มีลักษณะคล้ายเมทธอด มีการโอเวอร์โหลดได้ แต่ไม่มีการคืนค่าแม้ void ก็ใช้ไม่ได้ นิยมใช้คอนสตรักเตอร์เพื่อสร้างค่าเริ่มต้นให้กับฟิลด์ต่างๆ ของ ออบเจ็กต์ Class Customer() { public Customer( ) { } // this is a constructor } C# Programming with Visual C# 2010 Express

ตัวอย่างการสร้างค่าเริ่มต้น และเรียกใช้งาน class Program { static void Main(string[ ] args) { Customer c1 = new Customer(); Console.WriteLine(c1.name);// Print "Theerapone" } class Customer { public String name; public Customer( ) { this.name = "Theerapone"; C# Programming with Visual C# 2010 Express

ค่าสเตติก (ตัวแปรของคลาส - class variable) การสร้างให้มีรหัสมีการเปลี่ยนเสมอได้เองทุกครั้งที่สร้าง ออปเจ็กต์ เช่น มีค่ารหัสลูกค้ารายแรกเป็น 1 รายที่สอง เป็น 2 รายที่สามเป็น 3 และรายต่อๆไปมีค่าเพิ่มทีละหนึ่ง ค่าประจำคลาส ที่ทุกออปเจ็กต์ใช้ร่วมกัน เรียกค่านี้ว่า static ค่าสเตติกนี้ ใช้งานได้ทันทีโดยไม่ต้องสร้างเป็นออปเจ็ค ดังเช่น เมธอด Main( ) คลาสใดมีค่าสเตติก อยู่ ก็สามารถเรียกใช้ในเมธอด Main( ) โดยไม่ต้องสร้างเป็นออปเจ็กต์ การประยุกต์ค่าสเตติก เพื่อกำหนดค่าเริ่มต้นให้กับออป เจ็กต์ได้ เช่น การเพิ่มค่าออปเจ็กต์ให้มีค่ารหัสลูกค้าเพิ่ม ที่ละหนึ่ง C# Programming with Visual C# 2010 Express

ตัวอย่าง การใช้สร้างตัวแปรของคลาส class Customer { public static int next_id = 1; public int id; public string name; //field public void Order()//method { Console.WriteLine("I order product1."); } public Customer( ) { this.id = next_id; next_id += 1; คีย์เวิร์ด this ใช้กับตัวแปรของออปเจ็กต์เท่านั้น ใช้กับตัวแปรของคลาสไม่ได้ C# Programming with Visual C# 2010 Express

การทำโอเวอร์โหลดคอนสตรักเตอร์ คอนสตรักเตอร์สามารถทำโอเวอร์โหลด ได้ เท่ากับ ทำให้ วัตถุเกิดได้หลายแบบ การกำหนดให้ชื่อรับค่าขณะรันไทม์ เพื่อกำหนดค่าเริ่มต้นใน การสร้างออปเจ็กต์ ผ่านตัวแปรเข้าของคอนตรักเตอร์ได้ คอนสตรักเตอร์ ที่ไม่มีตัวแปรเข้า จะเป็นคอนตรักเตอร์ปริยาย (default) การเขียนคอนตรักเตอร์ที่ไม่ใช่คอนตรักเตอร์ปริยาย (custom constructor) คอมไพเลอร์ของซีชาร์ป ไม่สร้างคอนสตรักเต อร์ปริยายให้ จะต้องเขียนเพิ่มเอง ใช้คำสั่ง this( ) เป็นการเรียกคอนสตรักเตอร์ปริยาย ใช้คำสั่ง this เป็นการเรียกออปเจ็กต์ ซึ่งใช้แยกความแตกต่าง กับ ตัวแปรเข้า ที่มีชื่อเหมือนกับสมาชิกของออปเจ็กต์ได้ C# Programming with Visual C# 2010 Express

ตัวอย่าง การมีคอนสตรักเตอร์สองตัว class Customer { public static int next_id = 1; public int id; public string name; //field public Customer( ) { this.id = next_id; next_id += 1; } public Customer(string name):this( ) { this.name = name; } } static void Main(string[] args) { Customer c1 = new Customer("theerapon"); Customer c2 = new Customer("monchai"); } C# Programming with Visual C# 2010 Express

กำหนดค่าเริ่มต้นโดยไม่ใช้คอนสตรักเตอร์ช่วย การสร้างค่าเริ่มต้นพร้อมกับสร้างออบเจ็กต์ หรืออิน แตทซ์ ลูกค้า โดยไม่ได้ใช้คอนสตรักเตอร์ที่กำหนดค่า เริ่มต้น ในซีชาร์ป สามารถทำได้ เหมือนเราเคยเห็นการ สร้างแบบนี้มาบ้าง ทั้งใน เรื่อง อะเรย์ และเอ็กเซ็บชัน การสร้างค่าเริ่มต้นพร้อมกับสร้างออบเจ็กต์ ทำได้โดย การระบุชื่อฟิลด์ ให้เท่ากับอะไร ให้อยู่ภายในวงเล็บปีก กา static void Main(string[ ] args) { Customer c1 = new Customer( ) { name = "pone" }; } C# Programming with Visual C# 2010 Express

การควบคุมการมองเห็นสมาชิกคลาส public เป็นระดับที่กว้างที่สุด ที่ทุกคลาสใน และนอกแอส แซมบลีมองเห็นได้ internal มองให้ในระดับแอสแซมบลีเดียวกัน private มองเห็นได้เฉพาะภายในคลาสเดียวกัน การไม่กำหนด ตัวควบคุมการมองเห็น กับคลาส ทำให้ คลาสนั้นเป็น internal แต่ถ้าไม่กำหนดในสมาชิกภายใน คลาส ทำให้สมาชิกนั้นเป็น private เมธอดนิยมสร้างเป็น public ฟิลด์นิยมสร้างเป็น private C# Programming with Visual C# 2010 Express

ตัวอย่างคลาส Customer class Customer { private static int next_id = 1; private int id; private string name;   public Customer( ) { } public Customer(string name):this( ) { } public void SetName(string name) { } public string GetName( ) { } public int GetId( ) { } public void Info( ) { } } C# Programming with Visual C# 2010 Express

Property การใช้พร็อปเพอร์ตี้ มีความสะดวกแบบเดียวกับใช้งาน ฟิลด์ เพราะการเรียกใช้เหมือนการใช้งานฟิลด์มาก เช่น ฟิลด์ name กำหนดให้เท่ากับอะไรก็ใช้เครื่องหมายเท่ากับ ชื่อได้เลย พร็อปเพอร์ตี้มีความปลอดภัยแบบเดียวกับเมธอด เพราะ ภายในเมธอดอาจมีเรื่องกรองข้อมูลเข้า ร่วมกับเอ็กเซ็บชัน พร๊อปเพอร์ตี้สนับสนุนการทำ data binding กับคอนโทรล ดูตัวอย่างต่อไปนี้ ที่ต้องการเพิ่มค่าทีละหนึ่งค่า ด้วย วิธีการของพร๊อบเพอร์ตี้ เข้าใจง่ายกว่า ทำได้ง่ายกว่า this.GetId( ) + 1; //Method this.Id++; //Property C# Programming with Visual C# 2010 Express

พร็อปเพอร์ตี้ใช้ร่วมกับ exception public class Customer{ private string _name; public string Name { get { return _name; } set { if (( value == null ) || ( value.Length == 0 )) throw new ArgumentException( "Name cannot be blank“, Name" ); _name = value; } C# Programming with Visual C# 2010 Express

การเขียนพร็อปเพอร์ตี้ การเขียนอย่างสั้น พิมพ์ “prop” แล้วกดแทปๆ public int MyProperty { get; set; } การเขียนเต็มรูปแบบ พิมพ์ “propfull” แล้วกดแทปๆ private int myVar;  public int MyProperty { get { return myVar; } set { myVar = value; } } C# Programming with Visual C# 2010 Express

การปรับแต่งพร็อปเพอร์ตี้ พร๊อบเพอร์ตี้ สามารถทำได้ทั้งอ่าน และเขียน การ กำหนดค่าพร็อปเพอร์ตี้ให้สามารถอ่านได้อย่างเดียว ทำ ได้โดยมีเพียง get เพียงอย่างเดียว หรือต้องการให้เขียน ได้อย่างเดียว ทำได้เพียงมีเพียง set หรือจะต้องการให้ บางส่วนมถ้าการมองเป็นเฉพาะคลาสก็สามารถใส่ส่วนการ ควบคุมการมองเห็นเป็น private ได้ private int myVar;  public int MyProperty { get { return myVar; } private set { myVar = value; } } C# Programming with Visual C# 2010 Express

Indexer เด็กเซอร์เป็นสมาชิกประเภทหนึ่งของคลาส มีลักษณะ คล้ายกับพร็อปเพอร์ตี้ การใช้งานของอินเด็กซ์มีลักษณะการใช้งานคล้ายกับอะเรย์ การใช้งานอินเด็กเซอร์จึงใช้ได้หลายตัวเหมือนกับที่อะเรย์ หนึ่งมีสมาชิกได้หลายตัว การเข้าถึงอินเด็กเซอร์แต่ละตัว ใช้แบบเดียวกับอาร์เรย์ การสร้างอินเด็กซ์ ควรมีตัวควบคุมการมองเห็นเป็น public และมีตัวคืนค่า ใช้คีย์เวิร์ด this[ ] ในการเขียนอินเด็กเซอร์ อาจพิมพ์ index แล้วกด Tab โปรแกรม Visual C# จะสร้างโครงสร้างอินเด็กเซอร์ให้ อัตโนมัติ C# Programming with Visual C# 2010 Express

ตัวอย่าง การสร้างอินเด็กเซอร์ และใช้งาน class TelList { private string[ ] list; public string this[int index] get { return list[index]; } set { list[index] = value; } } public TelList() list = new string[3]; static void Main(string[] args) { TelList tels = new TelList(); tels[0] = "089-123-3456"; tels[1] = "081-232-4547"; for (int i = 0; i < 3; i++) if (tels[i] == null) tels[i] = "N/A"; Console.WriteLine("Tel " + tels[i]); } Console.ReadKey(); C# Programming with Visual C# 2010 Express

ข้อแตกต่างของอินเด็กเซอร์ กับอะเรย์ และพร๊อบเพอร์ตี้ อินเด็กเซอร์ สามารถใช้ตัวอักษรแทนดัชนีได้ แต่อะเรย์ ต้องใช้ตัวเลขเท่านั้นแทนเลขดัชนีที่จะเขียนหรืออ่าน ข้อมูลในอะเรย์ เช่น อินเด็กเซอร์ ใช้ชื่อเล่นแทนดัชนี แต่การเก็บจะใช้ชื่อจริง ดังเขียนเป็นตัวอย่างคือ Customer[“Pone”] = “Theerapone” อินเด็กเซอร์สามารถทำโอเวอร์โหลดได้ ใช้อินเด็กเซอร์ประกาศเป็นตัวแปรไม่ได้ และตัวแปรเข้า ของอินเด็กเซอร์ใช้เป็น ref หรือ out ไม่ได้ อินเด็กเซอร์เป็นค่าสเตติกไม่ได้ C# Programming with Visual C# 2010 Express

Partial Class พาร์เทียลคลาส หรือคลาสบางส่วน เป็นการเขียนเพียง บางส่วนของคลาส หรือของเมธอด ด้วยเหตุผลของซ่อน บางรายละเอียด ของผู้พัฒนา หรือเพียงต้องการให้ ผู้พัฒนา พัฒนาเพิ่มเติมเพียงบางส่วน เช่น ใน Windows Form Application หรือ Windows Presentation Foundation Application จะมีส่วนที่ให้ผู้เขียนโปรแกรมต่อ เติมในส่วนของ การทำงานกับ ยูสเซอร์อินเทอร์เฟส (user interface) การสร้างคลาสบางส่วน สามารถเขียนคลาสบางส่วนใน หลายไฟล์ได้ แต่ต้องใช้คีย์เวิร์ด “partial” หน้าคลาส public partial class Customer { //... } C# Programming with Visual C# 2010 Express

ในการสร้างคลาสบางส่วน มีกฏ และแนวทางดังนี้ แต่ละส่วนของคลาสต้อง มีครบทุกไฟล์ของคลาสบางส่วน เมื่อต้องคอมไฟล์ นั้นคือจะคอมไพล์เพียงบางไฟล์ไม่ได้ และทั้งหมดต้องอยู่ในแอสแซมบลีเดียวกัน ใช้คีย์เวิร์ด partial ระบุให้รู้ว่าเป็นคลาสบางส่วน นำหน้า ชื่อคลาส // File1.cs namespace SalemanShip { public partial class Customer //... } // File2.cs namespace SalemanShip { public partial class Customer //... } C# Programming with Visual C# 2010 Express

Partial Method สำหรับเมธอดบางส่วน มีการสร้างคล้ายๆ กับคลาส บางส่วน จะมีการเขียนขยายเพิ่มเติมในไฟล์ใหม่มีเป็น คลาสบางส่วน ในกรณีที่ได้นิยามเมธอดบางส่วนไว้ แต่ ไม่ได้เขียนขยายอยู่จริงในไฟล์ใด เมธอดนี้ จะถูกลบ หรือถูกข้ามไป เมธอด หรือสเตทเม้นท์เรียกใช้งาน เมธ อดบางส่วน จะถูกยกเลิกไปอัตโนมัติ ในการสร้างเมธอดบางส่วน มีกฏ และแนวทางดังนี้ เมธอดบางส่วนมีการคืนเป็นชนิด void ได้เท่านั้น เมธอดบางส่วน จะต้องมีความหมายโดยนัยเป็น private (ไม่ ต้องใส่คีย์เวิร์ด private) ใช้คีย์เวิร์ด partial นำหน้า void C# Programming with Visual C# 2010 Express

คลาสในคลาส (Nested Class) คลาสในคลาสสามารถทำได้ เปรียบเสมือนการเป็นสมาชิก ตัวหนึ่งของคลาส การควบคุมการมองเห็น มีลักษณะ เหมือนกับเป็นสมาชิกทั่วไป ในซีชาร์ป สามารถ กำหนดให้โครงสร้างของ คลาส สตรัก(struct) อินเตอร์เฟส อีนัม และลีดีเกท สามารถอยู่ในคลาสได้ class Customer { public class Address public string number; public string road; public string tumbon; public string amper; public string junvat; } C# Programming with Visual C# 2010 Express

ประโยชน์ของการสร้างคลาสในคลาส คลาสในคลาสเป็นการประกาศในขอบเขตที่กำหนดได้ด้วย การควบคุมการมองเห็นเหมือนกับที่ใช้ได้กับสมาชิกทั่วไป ช่วยให้ไม่ต้องประกาศขอบเขตสากล หรือในพื้นที่ เนมสเปสเดียวกัน เป็นโครงสร้างทางภาษาที่สร้างทางลือกได้มากขึ้น เช่น แทนที่จะมี คลาสลูกค้า คลาสที่อยู่ เราใช้เพียงคลาส Customer.Address ให้อยู่โครงสร้างเดียวกัน C# Programming with Visual C# 2010 Express

ตัวอย่างการใช้งานคลาสในคลาส การใช้งานคลาสในคลาส จะต้องประกาศสร้างออบเจ็กต์ ใหม่เหมือนกับคลาสทั่วไป แต่ต้องระบุชื่อคลาสนอกก่อน เท่านั้น static void Main(string[] args) { Customer.Address c1Address = new Customer.Address(); c1Address.number = "137"; c1Address.road = "Vipavadee"; c1Address.tumbon = "Samambin"; c1Address.amper = "Donmuang"; c1Address.junvat = "Bangkok“; } C# Programming with Visual C# 2010 Express

คำถามทบทวน ให้อธิบายความแตกต่างระหว่างคลาส กับ ออบเจ็กต์ อะไรคือความแตกต่างระหว่างฟิล์ด กับ เมธอด ให้สร้างอโนนิมัสคลาส ที่มีสมาชิกสองตัวคือ Id และ Name มีค่า Id=1 และ Name=”Theerapone” จะใช้คำสั่งอย่างไรในการให้คอนสตรักเตอร์หนึ่งเรียกอีก คอนสตรักเตอร์หนึ่ง จะเกิดอะไรขึ้นเมื่อได้สร้างคอนสตรักเตอร์ที่ตัวแปรเข้าได้ (ไม่ใช่คอนสตรักเตอร์ปริยาย) แต่ในการสร้างอินแตทซ์ ได้เรียกคอนสตรักเตอร์ปริยาย ให้เปรียบเทียบโค้ดการสร้างค่าเริ่มต้นของอะเรย์ กับการ สร้างค่าเริ่มต้นของออบเจ็กต์ ที่ไม่ได้ใช้คอนสตรัก เตอร์ C# Programming with Visual C# 2010 Express

คำถามทบทวน ให้เขียน พร็อปเพอร์ตี้ของฟิลด์ next_id ให้เขียนค่าได้ อย่างเดียว และมีลักษณะเป็น static จะใช้คีย์เวิร์ด this กับ ค่าสเตติก หรือตัวแปรของ คลาสได้หรือไม่ เมื่อการใช้โค้ดลัด “prop” เพื่อสร้างพร็อปเพอร์ตี้ ชื่อ Name จะได้ผลโค้ดเป็นเช่นใด ชื่ออินเด็กเซอร์ เขียนอย่างไร พาร์เทียลคลาส และพาร์เทียลเมธอด ต่างกันอย่างไร การสร้างออบเจ็กต์ คลาสในคลาส จะใช้วิธีการสร้าง อย่างไร C# Programming with Visual C# 2010 Express