0Pricing
C# Academy · บทเรียน

ชนิดแบบบางส่วนและไฟล์

แบ่งชนิดหนึ่งออกเป็นหลายไฟล์ด้วยคลาส/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 ที่เหมาะสมใน C# 6 คืออะไร

ทบทวน

ทบทวน: ใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. public/internal/protected/private (พร้อมหมายเหตุเรื่อง file)
  2. เนมสเปซ คำสั่ง using และ global usings (หมายเหตุ)
  3. ชนิดแบบบางส่วนและไฟล์
← กลับไปที่ C# Academy