สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
พัฒนาเว็บไซต์ · WDC-01-27

Advanced C# Programming

หลักสูตร Advanced C# Programming เป็นการอบรมภาษา C# ขั้นสูงบน .NET ครอบคลุม OOP ขั้นสูง หน่วยความจำ Reflection, Delegate, Generics, LINQ, Async/Await, งานหลาย Thread และการปรับประสิทธิภาพ เหมาะกับนักพัฒนาที่เขียน C# ได้แล้ว และผู้ที่เคยใช้ Visual C# บน .NET Framework มาก่อน

อัปเดตล่าสุด
ราคาเริ่มต้น 6,750 บาท / ท่าน 7,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

เมื่อเขียน C# ได้คล่องแล้ว สิ่งที่แยกโค้ดระดับมืออาชีพออกจากโค้ดที่แค่ทำงานได้ คือความเข้าใจกลไกของภาษาให้ลึกพอ ทั้งการออกแบบเชิงวัตถุที่ยืดหยุ่น การจัดการหน่วยความจำ Generics, Delegate และ LINQ ไปจนถึงงาน Asynchronous และงานหลาย Thread ภาษา C# 14 บน .NET 10 (LTS) ยังเพิ่มเครื่องมือใหม่อย่าง Extension Member, คีย์เวิร์ด field และ Null-conditional Assignment ที่ช่วยให้โค้ดสั้นและปลอดภัยขึ้น

หลักสูตรนี้ต่อยอดจากพื้นฐาน C# ไปสู่การเขียนโปรแกรมขั้นสูง ตั้งแต่ Interface กับ Abstract Class, Value Type กับ Reference Type, Boxing, Pattern Matching, Operator Overloading, Indexer, Attribute และ Reflection ต่อด้วย Delegate, Event, Lambda, Generics เชิงลึก, LINQ ขั้นสูง และ Extension Member แล้วปิดท้ายด้วย Async/Await, Thread, Parallel, Span, การ Debug และ Unit Test ทุกหัวข้อฝึกผ่าน Console App และ Class Library โดยไม่ผูกกับเว็บเฟรมเวิร์กใด (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Advanced)

สิ่งที่คุณจะได้รับ

  • ออกแบบโค้ดเชิงวัตถุขั้นสูงด้วย Interface, Abstract Class และ Composition ได้
  • เข้าใจ Value Type, Reference Type, Stack, Heap, Casting, Boxing และ Unboxing
  • ใช้ Pattern Matching, Operator Overloading, Indexer, Attribute และ Reflection ได้
  • ใช้ Delegate, Event, Lambda, Generics และ LINQ ขั้นสูงได้อย่างถูกต้อง
  • ใช้ความสามารถใหม่ของ C# 14 เช่น Extension Member และคีย์เวิร์ด field ได้
  • เขียนโปรแกรมแบบ Asynchronous และหลาย Thread อย่างปลอดภัยได้
  • ปรับประสิทธิภาพด้วย Span และวัดผลก่อนตัดสินใจได้
  • Debug, วิเคราะห์ปัญหา และเขียน Unit Test ให้โค้ดของตนเองได้

หลักสูตรนี้เหมาะสำหรับ

  • นักพัฒนาที่เขียน C# ได้แล้วและต้องการเข้าใจภาษาให้ลึกขึ้น
  • ผู้ที่เคยเรียน Visual C# บน .NET Framework และต้องการอัปเดตเป็น C# 14 บน .NET 10
  • นักพัฒนาที่ดูแล Class Library, Service หรือโปรแกรมเบื้องหลังขององค์กร
  • IT Manager และหัวหน้าทีมที่ต้องรีวิวโค้ด C# ของทีม

พื้นฐานของผู้เข้าอบรม

  • เขียนโปรแกรมภาษา C# ได้ เข้าใจ Class, Method, Collection และ Exception เบื้องต้น
  • เคยใช้ Visual Studio หรือ VS Code สร้างและรันโปรเจกต์ .NET มาบ้าง
  • ผ่านหลักสูตร Basic C# Programming หรือมีประสบการณ์เทียบเท่า
  • โน้ตบุ๊ก Windows, macOS หรือ Linux ที่ติดตั้ง .NET 10 SDK ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ของหลักสูตร Advanced Programming with Visual C# .NET ซึ่งเดิมสอนบน .NET Framework เนื้อหาเปลี่ยนเป็น C# 14 บน .NET 10 (LTS) ทั้งหมด อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab ระดับ Advanced วันแรกเป็น OOP ขั้นสูงและกลไกของภาษา ได้แก่ Interface, Abstract Class, หน่วยความจำ, Pattern Matching, Operator Overloading, Attribute และ Reflection

วันที่สองเป็น Delegate, Event, Lambda, Generics, LINQ ขั้นสูง, Extension Member และการจัดการ Exception วันที่สามเป็นงานพร้อมกันและคุณภาพโค้ด ได้แก่ Async/Await, Thread, Parallel, Channel, Span, Debug และ Unit Test ปิดท้ายด้วย Workshop Class Library ระดับทีม หลักสูตรนี้เน้นตัวภาษาด้วย Console App และ Class Library ส่วนการสร้างเว็บและ API อยู่ในหลักสูตรกลุ่ม ASP.NET Core เครื่องมือทั้งหมดใช้ได้ฟรีบน Windows, macOS และ Linux

Day 1 OOP ขั้นสูงและกลไกของภาษา

Section 1: Lab: โซลูชัน .NET 10 และของใหม่ใน C# 14

  • C# จากยุค .NET Framework สู่ .NET 10 (LTS) และรอบการออกรุ่น
  • สร้าง Solution ที่มีหลาย Project ด้วย dotnet CLI และ Visual Studio 2026
  • เปิด Nullable Reference Types และ Analyzer ทั้ง Solution
  • ภาพรวมของใหม่ใน C# 14: Extension Member, field และ Null-conditional Assignment
  • Lab: วางโครง Class Library และ Console App ที่ใช้ต่อทั้งหลักสูตร

Section 2: Lab: OOP ขั้นสูงด้วย Interface และ Abstract Class

  • ทบทวน Inheritance, Polymorphism, Encapsulation และ Abstraction
  • Interface, การ Implement หลาย Interface และ Default Interface Member
  • Abstract Class และการเลือกระหว่าง Abstract Class กับ Interface
  • Static Abstract Member ใน Interface และ Composition แทน Inheritance
  • Lab: ระบบคำนวณค่าขนส่งหลายรูปแบบที่เพิ่มรูปแบบใหม่ได้โดยไม่แก้โค้ดเดิม

Section 3: Value Type, Reference Type และหน่วยความจำ

  • การจองหน่วยความจำใน .NET: Stack, Heap และ Garbage Collector
  • class, struct, record และ record struct ต่างกันอย่างไร
  • readonly struct, ref struct และการส่งค่าด้วย ref, in และ out
  • Boxing และ Unboxing และผลต่อประสิทธิภาพ
  • Lab: วัดผลการ Boxing ในลูปและแก้ด้วย Generics

Section 4: Lab: Casting, Pattern Matching และ Operator Overloading

  • Implicit และ Explicit Conversion และการเขียน Conversion Operator
  • Pattern Matching: Type, Property, Relational และ List Pattern
  • Operator Overloading และ User-defined Compound Assignment ใน C# 14
  • Indexer และการเลือกระหว่าง Indexer กับ Property
  • Lab: Type ตัวเงิน (Money) ที่บวกลบและเปรียบเทียบได้อย่างปลอดภัย

Section 5: Lab: Attribute และ Reflection

  • Attribute ที่มีมาให้ เช่น Obsolete และ Conditional
  • สร้าง Custom Attribute พร้อมกำหนด AttributeUsage
  • อ่าน Metadata ด้วย Reflection และข้อควรระวังด้านประสิทธิภาพ
  • ภาพรวม Source Generator ที่มาแทน Reflection ในหลายงาน
  • Lab: ตัวตรวจข้อมูล (Validator) ที่อ่านกฎจาก Attribute
Day 2 Delegate, Generics และ LINQ เชิงลึก

Section 6: Lab: Delegate, Event และ Lambda

  • Delegate, Multicast Delegate และ Func กับ Action
  • Event ตามแบบแผนของ .NET ด้วย EventHandler<T>
  • Lambda Expression, Closure และการจับตัวแปร
  • Modifier บนพารามิเตอร์ของ Lambda แบบย่อใน C# 14
  • Lab: ระบบแจ้งเตือนสต็อกที่ผู้ฟังลงทะเบียนและยกเลิกได้

Section 7: Lab: Generics เชิงลึก

  • Generic Class, Method และ Interface ที่ออกแบบเอง
  • Constraint แบบต่าง ๆ: class, struct, new(), notnull และ Interface
  • Covariance และ Contravariance ด้วย in และ out
  • Generic Math ด้วย INumber<T> และ Static Abstract Member
  • Lab: Repository แบบ Generic และฟังก์ชันคำนวณที่ใช้ได้กับทุกชนิดตัวเลข

Section 8: Lab: Collection และ LINQ ขั้นสูง

  • List, Dictionary, HashSet, Queue และการเลือกให้เหมาะกับงาน
  • Immutable Collection และ Frozen Collection สำหรับข้อมูลที่ไม่เปลี่ยน
  • LINQ: Join, GroupBy, SelectMany, CountBy และ AggregateBy
  • Deferred Execution และกับดักการ Enumerate ซ้ำ
  • Lab: รายงานยอดขายหลายมิติจากข้อมูลคำสั่งซื้อ

Section 9: Lab: Extension Member ใน C# 14

  • Extension Method แบบเดิมและข้อจำกัด
  • Extension Block สำหรับ Extension Property และ Extension Method
  • Static Extension Member และ Operator ที่เพิ่มให้ Type เดิม
  • แนวทางตั้งชื่อและจัดวางเพื่อไม่ให้โค้ดสับสน
  • Lab: เพิ่มความสามารถให้ Type ของ .NET และของทีมด้วย Extension Block

Section 10: Exception และการคืนทรัพยากร

  • ออกแบบ Custom Exception และ Exception Filter ด้วย when
  • เมื่อไรควร throw และเมื่อไรควรคืนผลแบบ Result
  • IDisposable, IAsyncDisposable, using และ await using
  • Null-conditional Assignment และ Nullable Annotation ใน API ของเรา
  • Lab: Class อ่านไฟล์นำเข้าข้อมูลที่จัดการ Error และคืนทรัพยากรครบ
Day 3 งานพร้อมกัน ประสิทธิภาพ และคุณภาพโค้ด

Section 11: Lab: Async/Await เชิงลึก

  • Task, ValueTask และสิ่งที่เกิดขึ้นเมื่อ await
  • ยกเลิกงานด้วย CancellationToken และกำหนด Timeout
  • รอหลายงานด้วย Task.WhenAll และ Task.WhenAny
  • IAsyncEnumerable และ await foreach
  • Lab: ดาวน์โหลดและประมวลผลไฟล์หลายไฟล์พร้อมกันแบบยกเลิกได้

Section 12: Lab: Thread, Parallel และ Channel

  • แนวคิดของ Thread, Join และ Sleep และเหตุที่ควรใช้ Task แทนในงานส่วนใหญ่
  • Race Condition และการป้องกันด้วย lock และชนิด Lock
  • Parallel.ForEachAsync และ Concurrent Collection
  • Producer และ Consumer ด้วย System.Threading.Channels
  • Lab: คิวประมวลผลคำสั่งซื้อแบบหลาย Worker

Section 13: Span และการปรับประสิทธิภาพ

  • Span<T>, ReadOnlySpan<T> และ Memory<T>
  • Implicit Span Conversion ใน C# 14
  • ลดการจองหน่วยความจำด้วย ArrayPool และ stackalloc
  • วัดผลก่อนปรับด้วย BenchmarkDotNet
  • Lab: ปรับโค้ดแยกข้อความ CSV ให้เร็วขึ้นและวัดผลเทียบกัน

Section 14: Lab: Debug, Diagnostics และ Unit Test

  • Conditional Breakpoint, Tracepoint และหน้าต่าง Debug ที่ใช้บ่อย
  • Debug โค้ด Async และหลาย Thread ด้วย Parallel Stacks
  • ติดตามการทำงานด้วย Logging และ dotnet-counters
  • เขียน Unit Test ด้วย xUnit และรันด้วย dotnet test
  • Lab: เขียน Test ให้ Money Type และคิวประมวลผลคำสั่งซื้อ

Section 15: Workshop: Class Library ระดับทีม

  • ออกแบบ Class Library ที่มี Interface, Generics และ Event ครบ
  • ใช้ Dependency Injection และ Configuration ใน Console App ด้วย Generic Host
  • Workshop: ระบบประมวลผลคำสั่งซื้อแบบ Asynchronous พร้อมชุด Unit Test
  • แพ็กเป็น NuGet Package สำหรับใช้ภายในทีม
  • นำเสนอผลงานและรีวิวโค้ดร่วมกัน

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

Interface กับ Abstract Class ใน C# ต่างกันอย่างไร

Abstract Class มีได้ทั้ง field, constructor และเมธอดที่เขียนเสร็จแล้ว แต่คลาสหนึ่งสืบทอดได้จาก Abstract Class เดียว จึงเหมาะกับกลุ่มคลาสที่เป็นประเภทเดียวกันและใช้โค้ดร่วมกัน ส่วน Interface เป็นข้อกำหนดว่าคลาสต้องมีสมาชิกอะไร คลาสหนึ่ง implement ได้หลาย Interface และใน C# รุ่นใหม่ Interface ยังมี Default Member และ Static Abstract Member ได้ จึงเหมาะกับการกำหนดความสามารถที่คลาสต่างประเภทกันมีร่วมกัน

Value Type กับ Reference Type ต่างกันอย่างไร และ Boxing คืออะไร

Value Type เช่น int, double, bool, struct และ record struct เก็บค่าไว้ในตัวแปรโดยตรง เมื่อกำหนดค่าให้ตัวแปรอื่นจะได้สำเนาใหม่ ส่วน Reference Type เช่น class, record, string และ array เก็บการอ้างอิงไปยังออบเจ็กต์บน heap การกำหนดค่าจึงชี้ไปที่ออบเจ็กต์เดียวกัน Boxing คือการแปลง Value Type เป็น object ซึ่งต้องจองหน่วยความจำบน heap ใหม่ ถ้าเกิดบ่อยจะช้าลง จึงควรใช้ Generics แทน และวัดผลด้วยเครื่องมืออย่าง BenchmarkDotNet

Extension Member ใน C# 14 ต่างจาก Extension Method แบบเดิมอย่างไร

Extension Method แบบเดิมเพิ่มได้เฉพาะเมธอดให้ Type ที่มีอยู่แล้ว โดยเขียนเป็นเมธอด static ที่มี this นำหน้าพารามิเตอร์แรก ใน C# 14 มี Extension Block ที่ประกาศ Type เป้าหมายครั้งเดียว แล้วเพิ่มได้ทั้ง Extension Property, Extension Method, Static Extension Member และ Operator ไว้ในกลุ่มเดียวกัน โค้ดเดิมที่ใช้ Extension Method ยังทำงานได้ตามปกติ จึงค่อย ๆ ย้ายมาใช้รูปแบบใหม่ได้

หลักสูตร Advanced C# Programming เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับนักพัฒนาที่เขียน C# ได้แล้วและต้องการเข้าใจภาษาให้ลึกขึ้น ผู้ที่เคยใช้ Visual C# บน .NET Framework และต้องการอัปเดตเป็น C# 14 บน .NET 10 ผู้ดูแล Class Library หรือโปรแกรมเบื้องหลังขององค์กร และหัวหน้าทีมที่ต้องรีวิวโค้ด ควรเขียน C# ได้ เข้าใจ Class, Method, Collection และ Exception เบื้องต้น หรือผ่านหลักสูตร Basic C# Programming มาแล้ว

เรียนจบหลักสูตร Advanced C# Programming แล้วทำอะไรได้บ้าง

ออกแบบโค้ดเชิงวัตถุขั้นสูงด้วย Interface, Abstract Class และ Composition เข้าใจหน่วยความจำ Value Type, Reference Type และ Boxing ใช้ Pattern Matching, Operator Overloading, Attribute และ Reflection ใช้ Delegate, Event, Generics, LINQ และ Extension Member ของ C# 14 เขียนงาน Async และหลาย Thread อย่างปลอดภัย ปรับประสิทธิภาพด้วย Span และวัดผล รวมถึง Debug และเขียน Unit Test ได้ ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Advanced C# Programming ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ฝึกปรับโครงสร้างคลาสจากโค้ดที่ทีมดูแลอยู่ หรือเน้นการย้ายโค้ด C# บน .NET Framework มาเป็น .NET 10 ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449