Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#
C#
  1. วิธีทำ Dependency Injection แบบต่างๆ และข้อดีใน C#

    Dependency Injection (DI) เป็น Design Pattern ที่แยกการสร้าง Dependency (Object ที่ต้องการ) ออกจาก Class ที่ใช้ Dependency เพื่อลด Coupling และเพิ่ม Testability/Maintainability 4 ประเภทหลักของ DI ประเภท วิธีส่ง Dependency เหมาะสำหรับ Constructor Inj

  2. วิธี Copy ไฟล์ไปยัง Directory ใน C#

    ใช้คลาส System.IO.File เมธอด Copy และ Directory.GetFiles เพื่อหาไฟล์ต้นทาง File.Copy Overloads Signature พฤติกรรม Copy(source, dest) Copy ไฟล์ หากไฟล์ปลายทางมีอยู่ → โยน IOException Copy(source, dest, overwrite) overwrite=true:

  3. FluentValidation ใน C# คืออะไร และวิธีใช้งานพื้นฐาน

    FluentValidation เป็น .NET Library สำหรับสร้าง Validation Rules แบบ Strongly-typed Fluent Interface ใช้ Lambda Expressions ทำให้โค้ดอ่านง่าย รวม Validation Logic ไว้ที่เดียว (Separation of Concerns) ทำไมต้องใช้ FluentValidation? แยก Validation Logic ออกจาก Domain Model (Clean Architecture) Flu

  4. การ Validate DateOfBirth ไม่ให้เกินปีปัจจุบันด้วย FluentValidation ใน C#

    120 ปี) ด้วย FluentValidation หลักการ Validate Year ≤ Current Year (ไม่ใช่ปีหน้า) Current Year - 120 (ไม่อายุเกิน 120 ปี) อาจเพิ่ม: ต้องมีอายุ ≥ 18 ปี (Business Rule) ตัวอย่างโค้ดเต็ม p.DateOfBirth) .LessThanOrEqualTo(DateTime.Today) .WithMessage({PropertyName} ต้

  5. การ Validate MinLength และ MaxLength ด้วย FluentValidation ใน C#

    FluentValidation เป็น Library ยอดนิยมสำหรับ Validation แบบ Strongly-typed Fluent Interface ใน .NET ติดตั้ง dotnet add package FluentValidation // หรือ PackageReference <PackageReference Include=FluentValidation Version=11.9.0 /> Validators สำหรับ String Length Method ควา

  6. วิธีแปลง IEnumerable เป็น List และ List กลับเป็น IEnumerable ใน C#

    IEnumerable<T> คือ Interface พื้นฐานสำหรับ Sequence ที่วนรอบได้ (Forward-only) ในขณะที่ List<T> เป็น Concrete Collection ที่เข้าถึงด้วย Index ได้ รองรับ Add/Remove/Sort การแปลง IEnumerable → List 1. List Constructor (แนะนำ - ชัดเจนที่สุด) IEnumerable<int> numbers = Enumerable.Ran

  7. วิธีจับ Exception จาก Async Void Method ใน C#

    Async void methods เป็นกรณีพิเศษใน C# ที่จัดการ Exception ไม่ได้เหมือน async Task หรือ async Task<T> ปัญหาของ Async Void Exception ที่เกิดขึ้นใน async void **ไม่สามารถ Catch ด้วย try/catch รอบการเรียกได้** Exception จะถูกโยนขึ้น SynchronizationContext (UI Thread) หรือ ThreadPool ใน Con

  8. วิธีแปลงขนาดไฟล์เป็น Human-Readable (KB, MB, GB) ใน C#

    เมื่อได้ขนาดไฟล์เป็น Bytes (long) จาก FileInfo.Length มักต้องการแสดงในหน่วยที่อ่านง่าย (KB, MB, GB, TB) Extension Method แบบครบครัน public static class FileSizeExtensions { private static readonly string[] Units = { B, KB, MB, GB, TB, PB }; public static string ToHumanReadable(this lon

  9. Connection Pooling ใน C# คืออะไร และการใช้งานกับ using Statement

    Connection Pooling คือกลไกที่ ADO.NET ใช้จัดการ Database Connections โดยเก็บ Connection ที่ปิดแล้วไว้ใน Pool เพื่อนำกลับมาใช้ใหม่ (Reuse) แทนการสร้าง Connection ใหม่ทุกครั้ง ซึ่งมีค่าใช้จ่ายสูง (Expensive) ทำไมต้องมี Connection Pooling? เปิด/ปิด Connection จริง (Physical) ใช้เวลาและ Resource มาก

  10. การนำ Null Object Pattern ไปใช้ใน C#

    Null Object Pattern เป็น Behavioral Pattern ที่ให้ Object แทนค่า null เพื่อหลีกเลี่ยง Null Reference Checks ซ้ำซ้อน ทำให้โค้ดสะอาดขึ้น (Clean Code) แทนที่จะ Return null และบังคับให้ Caller ตรวจสอบ if (obj != null) ทุกครั้ง ให้ Return Null Object ที่ Implement Interface เดียวกัน แต่ทำงานเป็น No-Op (

  11. การนำ IDisposable Pattern ไปใช้ใน C# (Dispose Pattern)

    IDisposable Pattern (Dispose Pattern) เป็นมาตรฐานสำหรับปล่อยทรัพยากร Unmanaged Resources (File Handles, Database Connections, Network Streams, COM Objects) อย่างถูกต้องและปลอดภัย เมื่อไหร่ต้อง Implement IDisposable? คลาสครอบ Unmanaged Resources โดยตรง (IntPtr, SafeHandle) คลาสมี Field ที่เป็น

  12. วิธีดึงไฟล์ Sub-files และขนาดไฟล์ใน Directory ด้วย C#

    ใช้คลาส System.IO.Directory และ System.IO.FileInfo จาก Namespace System.IO เมธอดหลัก Directory.GetFiles(path, pattern, SearchOption): คืน Array ของ Path ไฟล์ SearchOption.TopDirectoryOnly: ค้นหาเฉพาะโฟลเดอร์บนสุด SearchOption.AllDirectories: ค้นหารวม Subdirectories (Recursive) FileInfo.Len

  13. ทำไม Singleton Class ใน C# ต้องเป็น Sealed เสมอ

    Singleton Pattern รับประกันว่ามี Instance ของคลาสเพียง Instance เดียวตลอด Lifetime ของ Application การประกาศ sealed มีความสำคัญ 2 ข้อ: 1. ป้องกัน Inheritance (สาเหตุหลัก) new DerivedSingleton(); } หากไม่ sealed ผู้อื่นสามารถ: สร้าง Subclass ที่มี Public Constructor สร้าง Instance ใหม่หลาย I

  14. Liskov Substitution Principle (LSP) คืออะไร และการนำไปใช้ใน C#

    Liskov Substitution Principle (LSP) ระบุว่า Derived types must be completely substitutable for their base types (Subtype ต้องแทนที่ Base Type ได้โดยไม่ทำให้โปรแกรมผิดพลาด) ง่ายๆ คือ: ถ้าโค้ดทำงานถูกต้องกับ Base Class แล้ว ต้องทำงานถูกต้องกับ Derived Class ทุกตัวได้เช่นกัน (Behavioral Subtyping) ตั

  15. Facade Pattern คืออะไร และการนำไปใช้ใน C#

    Facade Pattern เป็น Structural Pattern ที่ให้ Interface เรียบง่าย (Simple Interface) ครอบคลุม Subsystem ที่ซับซ้อน (Complex Subsystem) ทำให้ Client ใช้งานง่ายขึ้น ผู้เข้าร่วม (Participants) Facade: Классที่ให้ Interface เรียบง่าย รู้จัก Subsystems ใดทำหน้าที่อะไร Subsystems: คลาสที่ทำงานจริง (

  16. Interface Segregation Principle (ISP) คืออะไร และการนำไปใช้ใน C#

    Interface Segregation Principle (ISP) ระบุว่า Clients should not be forced to depend upon interfaces that they dont use (Client ไม่ควรถูกบังคับให้พึ่งพา Interface ที่ไม่ได้ใช้) แทนที่จะสร้าง Fat Interface (ใหญ่เกินไป) ควรแยกเป็น Small Interfaces (เล็กและเฉพาะเจาะจง) ตามกลุ่มหน้าที่ (Role/Responsibi

  17. Proxy Design Pattern คืออะไร และการนำไปใช้ใน C#

    Proxy Pattern เป็น Structural Design Pattern ที่ให้ออบเจกต์ตัวแทน (Surrogate/Placeholder) ควบคุมการเข้าถึงออบเจกต์จริง (Real Subject) โดย Proxy และ Real Subject ต้อง Implement Interface เดียวกัน เพื่อให้สามารถแทนที่กันได้ ผู้เข้าร่วม (Participants) Subject (Interface): กำหนด Interface ร่วมสำหรับ

  18. Dependency Inversion Principle (DIP) คืออะไร และการนำไปใช้ใน C#

    Dependency Inversion Principle (DIP) เป็นหลักการหนึ่งใน SOLID Principles: 1. High-level modules ไม่ควรพึ่งพา Low-level modules ทั้งคู่ควรพึ่งพา Abstractions 2. Abstractions ไม่ควรพึ่งพา Details Details ควรพึ่งพา Abstractions เป้าหมาย: ลด Coupling ระหว่างโมดูล ทำให้เปลี่ยน Implementation ได้ง่

Total 2668 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:130/134  20-คอมพิวเตอร์/Page Goto:1 124 125 126 127 128 129 130 131 132 133 134