Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#
C#
  1. Priority Queue ใน C#

    Priority Queue คือโครงสร้างข้อมูลที่จัดเก็บ Element พร้อม Priority — Element ที่มี Priority สูงสุด (หรือต่ำสุด) จะถูก Dequeue ก่อน .NET 6+: PriorityQueue<TElement, TPriority> (Built-in) ตั้งแต่ .NET 6 มี Implementation อยู่ใน System.Collections.Generic การใช้งานพื้นฐาน using System.Collectio

  2. Private Methods และ Sealed Methods (Final) ใน C#

    C# ไม่มีคีย์เวิร์ด final เหมือน Java ใช้ sealed แทนสำหรับห้าม Override เมธอด 1. Private Methods เหมือนกันกับบทความก่อนหน้า — เข้าถึงได้เฉพาะในคลาสเดียวกัน 2. Sealed Methods (Final Methods) ใช้ sealed override เพื่อห้ามให้ลูกคลาส Override ต่อไป เงื่อนไข ต้องเป็น override เมธอด (คือ Override มาจาก

  3. Private Constructors และ Singleton Pattern ใน C#

    Private Constructor ใช้ป้องกันการสร้าง Instance จากภายนอก ใช้ใน: Class ที่มีเฉพาะ Static Members (Utility Class) Singleton Pattern Factory Methods Prevent Inheritance (sealed class + private constructor) 1. Static Class / Utility Class a + b; } หรือ Non-static Class ที่มีเฉพาะ Static Members: pu

  4. Operator Functions (Operator Overloading) ใน C#

    Operator Functions คือ เมธอดพิเศษที่กำหนดพฤติกรรมของ Operator (+, -, ==, implicit, explicit ฯลฯ) สำหรับ Custom Types เรียกว่า Operator Overloading โครงสร้าง public static ReturnType operator OperatorSymbol(ParameterList) { // Implementation } กฎสำคัญ ต้องเป็น public static อย่างน้อย 1 พารามิเ

  5. ตัวดำเนินการ (Operators), ประเภทข้อมูล (Types) และตัวแปร (Variables) ใน C#

    ตัวแปร (Variables) ตัวแปรคือชื่อที่อ้างอิงพื้นที่หน่วยความจำ แต่ละตัวแปรมี Type กำหนดขนาด Layout ช่วงค่า และ Operation ที่ทำได้ ประเภทข้อมูลใน C# (Type System) แบ่งเป็น 3 หมวดหลัก: 1. Value Types (ประเภทค่า) เก็บค่าโดยตรง (Directly contain data) สืบทอดจาก System.ValueType เก็บใน Stack (โดยทั่วไป)

  6. เคล็ดลับเพิ่มประสิทธิภาพโค้ด C# (Optimization Tips)

    การเพิ่มประสิทธิภาพ (Optimization) ควรทำหลังจากมี Profiling Data จริง — Premature optimization is the root of all evil (Donald Knuth) เคล็ดลับที่มีผลจริง 1. เลือก Collection ให้เหมาะสม สถานการณ์แนะนำหลีกเลี่ยง เพิ่ม/ลบบ่อย, ไม่รู้ขนาดล่วงหน้าList<T>ArrayList (Non-generic, Boxing) ขนาดคงท

  7. ตัวแปรส่วนตัว (Private Variables/Fields) ใน C#

    private Access Modifier ใช้ซ่อน Field/Variable ไว้ภายในคลาสเท่านั้น เป็นพื้นฐานของ Encapsulation — ควบคุมการเข้าถึงผ่าน Public Methods/Properties แทน ลักษณะ เข้าถึงได้เฉพาะในคลาสที่ประกาศ Instance ภายนอกเรียกไม่ได้ (Compile Error) Derived Class เรียกไม่ได้ (ใช้ protected แทนถ้าต้องการ) ตัวอย่าง:

  8. Optional Property ใน C# Class

    ใน C# ไม่มีคีย์เวิร์ด optional สำหรับ Property โดยตรง แต่สามารถทำให้ Property เป็น Optional ได้หลายวิธี วิธีที่ 1: Nullable Reference Types (C# 8+) — แนะนำ #nullable enable public class Employee { public string Name { get; set; } // Required (non-nullable) public string? MiddleNa

  9. Method Overloading และ Operator Overloading ใน C#

    C# รองรับ Overloading 2 รูปแบบ: Method Overloading และ Operator Overloading 1. Method Overloading มีหลายเมธอดชื่อเดียวกัน แตกต่างใน จำนวนพารามิเตอร์ ประเภทพารามิเตอร์ หรือ ลำดับพารามิเตอร์ (Return type เพียงอย่างเดียว ไม่เพียงพอ) ตัวอย่าง a + b; // Concatenation } การเรียกใช้ var calc = new Calc

  10. Nested Classes (คลาสซ้อน) ใน C#

    Nested Class คือ คลาสที่ประกาศอยู่ภายในคลาสอื่น (Enclosing Class) เป็นสมาชิกของคลาสภายนอก สามารถเข้าถึงสมาชิก private ของคลาสภายนอกได้ ลักษณะสำคัญ เป็น Member ของ Enclosing Class — ควบคุม Access modifier ได้ (private, public, protected, internal) เข้าถึง private members ของคลาสภายนอกได้ (แตกต่างจา

  11. Mutation Testing Tools ใน C#: VisualMutator

    Mutation Testing เป็นเทคนิควัดคุณภาพ Test Suite โดยสร้าง Mutants (โค้ดที่เปลี่ยนเล็กน้อย) แล้วดูว่า Test จับข้อผิดพลาดได้หรือไม่ VisualMutator เครื่องมือ Mutation Testing ยอดนิยมสำหรับ .NET ที่ผสานกับ Visual Studio คุณสมบัติหลัก 📊 Mutation Score — แสดงเปอร์เซ็นต์ Mutants ที่ Test จับได้ (Kill ra

  12. ข้อตกลงการตั้งชื่อ (Naming Conventions) ใน C#

    การตั้งชื่อที่สอดคล้องกันทำให้โค้ดอ่านง่าย บำรุงรักษาง่าย และลดข้อผิดพลาด Microsoft มีแนวทางมาตรฐานสำหรับ C# หลักการทั่วไป (General Rules) เริ่มต้นด้วยตัวอักษร หรือ underscore (_) ตามด้วยตัวอักษร ตัวเลข (0-9) หรือ underscore ได้ ห้ามขึ้นต้นด้วยตัวเลข ห้ามมีช่องว่างหรือสัญลักษณ์พิเศษ (ยกเว้น _) ห้า

  13. NullReferenceException ใน C# (Null Pointer Exception)

    ใน C# ไม่มี NullPointerException` เหมือน Java แทนด้วย NullReferenceException เกิดขึ้นเมื่อพยายามเข้าถึงสมาชิก (Property, Method, Indexer) ของออบเจกต์ที่เป็น null ตัวอย่างที่เกิด Exception string str = null; Console.WriteLine(str.Length); // ❌ NullReferenceException การจัดการด้วย try-catch try {

  14. ตัวเลขและตัวดำเนินการทางคณิตศาสตร์ใน C#

    C# มีประเภทข้อมูลตัวเลขหลายแบบ สำหรับจำนวนเต็มใช้ int (32-bit signed integer) เป็นหลัก ประเภทตัวเลขพื้นฐาน ประเภทขนาดช่วงค่าประมาณ byte8-bit0 ถึง 255 short16-bit-32,768 ถึง 32,767 int32-bit-2.1B ถึง 2.1B long64-bit-9.2E18 ถึง 9.2E18 float32-bit7 หลักสำคัญ double64-bit15-16 หลักสำคัญ decimal128-

  15. การ Override (ลับทับ) เมธอดใน C#

    Method Overriding เป็นกลไกของ Runtime Polymorphism (Dynamic Binding) ที่คลาสลูก (Derived Class) ให้การทำงานใหม่แก่เมธอดที่สืบทอดมาจากคลาสแม่ (Base Class) เงื่อนไขการ Override เมธอดใน Base Class ต้องมี virtual, abstract, หรือ override เมธอดใน Derived Class ต้องใช้คีย์เวิร์ด override ลายเซ็น (Signat

  16. เมธอดส่วนตัว (Private Methods) ใน C#

    เมธอดที่มี access modifier เป็น private จะเข้าถึงได้เฉพาะภายในคลาสเดียวกันเท่านั้น ใช้เพื่อซ่อนรายละเอียดการทำงานภายใน (Implementation Detail) และรองรับการ Encapsulation ลักษณะสำคัญ เข้าถึงได้เฉพาะในคลาสที่ประกาศเท่านั้น อินสแตนซ์ของคลาส (Instance) ไม่สามารถเรียกได้ คลาสลูก (Derived class) ไม่สามา

  17. การกลับลำดับสตริง (Reverse String) ใน C#

    การกลับลำดับสตริงใน C# ทำได้หลายวิธี วิธีที่พบบ่อยคือแปลงเป็นอาร์เรย์ตัวอักษร แล้วใช้ Array.Reverse() วิธีที่ 1: ใช้ Array.Reverse() (คลาสสิก) string str = Amit; char[] chars = str.ToCharArray(); Array.Reverse(chars); string reversed = new string(chars); // timA วิธีที่ 2: ใช้ LINQ (กระชับ) using

  18. การสลับค่าตัวแปรสองตัวโดยไม่ใช้ตัวแปรชั่วคราวใน C#

    สามารถสลับค่าระหว่างตัวแปรสองตัวได้โดยใช้คณิตศาสตร์พื้นฐาน (บวก-ลบ) หรือ XOR bitwise โดยไม่ต้องใช้ตัวแปรที่สาม วิธีที่ 1: ใช้การบวกและลบ (Arithmetic Swap) int a = 5, b = 10; a = a + b; // a = 15 b = a - b; // b = 5 (ค่าเดิมของ a) a = a - b; // a = 10 (ค่าเดิมของ b) วิธีที่ 2: ใช้ XOR Bitwise (เ

  19. การทำงานกับเครือข่าย (Networking) ใน C#

    .NET Framework มีการนำเสนอบริการเครือข่ายที่เป็น Managed Code แบบชั้นๆ (Layered) และขยายได้ ใช้ผ่านเนมสเปซ System.Net คลาสสำคัญใน System.Net 1. Uri - แทนที่อยู่ทรัพยากรแบบเอกภาพ Uri uri = new Uri(https://www.example.com/); WebRequest request = WebRequest.Create(uri); 2. WebRequest / WebResponse -

  20. การตัดช่องว่างนำหน้าและท้ายสตริงใน C# (Trim)

    ใน C# มีเมธอด Trim() สำหรับตัดช่องว่าง (Whitespace) นำหน้าและท้ายสตริงโดยตรง ไม่จำเป็นต้องใช้ Regular Expression วิธีการใช้งานพื้นฐาน string input = Welcome User ; string trimmed = input.Trim(); // ผลลัพธ์: Welcome User เมธอดที่เกี่ยวข้อง เมธอดคำอธิบาย Trim()ตัดช่องว่างทั้งนำหน้าและท้าย Tri

Total 2668 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:29/134  20-คอมพิวเตอร์/Page Goto:1 23 24 25 26 27 28 29 30 31 32 33 34 35