ชนิดแบบบางส่วนและไฟล์
แบ่งชนิดหนึ่งออกเป็นหลายไฟล์ด้วยคลาส/struct แบบบางส่วน และใช้เมธอดแบบบางส่วนเพื่อเชื่อมตรรกะกำหนดเองเข้ากับโค้ดที่สร้างขึ้น
ชนิดแบบบางส่วนและไฟล์ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวมชนิดข้อมูลแบบ partial
เป้าหมาย: แบ่งชนิดข้อมูลขนาดใหญ่อย่างเป็นระเบียบ
- partial class/struct: ต้องมี namespace และชื่อเดียวกัน
- โดยทั่วไปจะแบ่งไว้ใน หลาย file
- partial methods: จุดเชื่อมต่อเสริมภายในชนิดข้อมูลแบบ partial
ส่วนต่าง ๆ ของคลาสแบบ partial
สามารถประกาศ คลาสแบบ partial แยกเป็นหลายส่วนได้ คอมไพเลอร์จะรวมทุกส่วนให้เป็นชนิดข้อมูลเดียว
using System;
namespace Demo
{
// Part 1: data
public partial class Person
{
public string Name { get; private set; }
public Person(string name) { Name = name; }
}
// Part 2: behavior
public partial class Person
{
public string Greet() { return "Hi " + Name; }
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Person p = new Demo.Person("Ada");
Console.WriteLine(p.Greet());
}
}
เมธอดแบบ partial
เมธอดแบบ partial คือจุดเชื่อมต่อในระหว่างการคอมไพล์ หากไม่มีการนำไปใช้ การเรียกเมธอดจะถูกลบออก ใน C# 6 เมธอดเหล่านี้ต้องไม่มีค่าผลลัพธ์และเป็น private
using System;
namespace Demo
{
public partial class Processor
{
// Partial method: implicitly private, must return void in C# 6
partial void OnProcessed(string item);
public void Run(string item)
{
// do work...
OnProcessed(item); // call hook (removed by compiler if not implemented)
}
}
public partial class Processor
{
// Implementation lives in another part (often another file)
partial void OnProcessed(string item)
{
Console.WriteLine("Processed: " + item);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Processor p = new Demo.Processor();
p.Run("report");
}
}
ควรใช้ partial เมื่อใด
กรณีการใช้งาน:
- เก็บโค้ดจากเครื่องมือออกแบบหรือโค้ดที่สร้างอัตโนมัติไว้ใน file หนึ่ง และเก็บการแก้ไขที่ปลอดภัยของคุณไว้อีก file หนึ่ง
- แบ่งชนิดข้อมูลขนาดใหญ่ตามความสามารถ เช่น ข้อมูลกับพฤติกรรม
- เพิ่มจุดเชื่อมต่อเสริมผ่าน partial methods
โครงสร้างแบบ partial
คุณสามารถแบ่ง โครงสร้าง ด้วย partial ได้เช่นกัน ผลลัพธ์จะเป็นชนิดโครงสร้างเดียวกันในระหว่างการคอมไพล์
using System;
namespace Demo
{
public partial struct Pair
{
public int A;
}
public partial struct Pair
{
public int B;
public int Sum() { return A + B; }
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Pair p = new Demo.Pair();
p.A = 2; p.B = 3;
Console.WriteLine("Sum = " + p.Sum());
}
}
กฎและเคล็ดลับของ partial
เคล็ดลับ:
- ทุกส่วนต้องใช้ namespace, ชื่อ และตัวปรับการเข้าถึงเดียวกัน
- กำหนดให้แต่ละ file มีหน้าที่ชัดเจน เช่น แยกโค้ดที่สร้างอัตโนมัติกับโค้ดที่เขียนเอง
- ใน C# 6 เมธอดแบบ partial ต้องไม่มีค่าผลลัพธ์และเป็น private จึงควรเขียนให้มีขนาดเล็ก
จุดประสงค์ของคลาสแบบ partial
ทบทวน
ทบทวน: ใช้ partial เพื่อแบ่งชนิดข้อมูลไว้ในหลาย file และเพิ่ม partial methods สำหรับจุดเชื่อมต่อเสริม เก็บทุกส่วนไว้ใน namespace และชื่อเดียวกัน แล้วให้คอมไพเลอร์รวมส่วนเหล่านั้นเข้าด้วยกัน
คำถามที่พบบ่อย
บทเรียน “ชนิดแบบบางส่วนและไฟล์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดแบบบางส่วนและไฟล์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดแบบบางส่วนและไฟล์”
แบ่งชนิดหนึ่งออกเป็นหลายไฟล์ด้วยคลาส/struct แบบบางส่วน และใช้เมธอดแบบบางส่วนเพื่อเชื่อมตรรกะกำหนดเองเข้ากับโค้ดที่สร้างขึ้น คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “ชนิดแบบบางส่วนและไฟล์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- public/internal/protected/private (พร้อมหมายเหตุเรื่อง file)
- เนมสเปซ คำสั่ง using และ global usings (หมายเหตุ)
- ชนิดแบบบางส่วนและไฟล์