แน่นอน 😎 ผมจะจัดทำ List ของ 100 Class ที่ใช้บ่อยใน C# พร้อมคำอธิบายสั้น ๆ และตัวอย่างโค้ด ให้คุณเอาไปใช้เรียนรู้หรืออ้างอิงได้
100 Classes ใน C# ที่ใช้บ่อย พร้อมตัวอย่าง
หมายเหตุ: ผมจะจัดเป็น หมวดหมู่ เพื่อให้เห็นภาพรวมง่ายขึ้น
1️⃣ System Namespace (Core Classes)
Class |
คำอธิบาย |
ตัวอย่าง |
Object |
คลาสฐานของทุกคลาสใน C# |
object obj = new object(); |
String |
เก็บข้อมูลตัวอักษร |
string s = "Hello"; |
Int32 |
เก็บจำนวนเต็ม 32-bit |
int x = 100; |
Int64 |
เก็บจำนวนเต็ม 64-bit |
long y = 1000000000; |
Double |
เก็บจำนวนทศนิยม |
double d = 3.14; |
Decimal |
เก็บตัวเลขความแม่นยำสูง (เงิน) |
decimal price = 99.99M; |
Boolean |
เก็บค่า true/false |
bool isValid = true; |
Char |
เก็บตัวอักษรตัวเดียว |
char c = 'A'; |
DateTime |
เก็บวันเวลา |
DateTime now = DateTime.Now; |
TimeSpan |
แทนช่วงเวลา |
TimeSpan t = TimeSpan.FromHours(1); |
Guid |
รหัสเฉพาะ (UUID) |
Guid id = Guid.NewGuid(); |
Array |
Array พื้นฐาน |
int[] arr = new int[5]; |
Math |
ฟังก์ชันคณิตศาสตร์ |
double r = Math.Sqrt(25); |
Convert |
แปลงชนิดข้อมูล |
int n = Convert.ToInt32("123"); |
Random |
สุ่มตัวเลข |
Random r = new Random(); int n = r.Next(1, 10); |
2️⃣ Collections (System.Collections / Generic)
Class |
คำอธิบาย |
ตัวอย่าง |
List<T> |
List แบบ Dynamic |
List<int> nums = new List<int>{1,2,3}; |
Dictionary<TKey,TValue> |
เก็บคู่ key-value |
var dict = new Dictionary<string,int>(); dict["a"]=1; |
Queue<T> |
FIFO Queue |
Queue<string> q = new Queue<string>(); q.Enqueue("A"); |
Stack<T> |
LIFO Stack |
Stack<int> s = new Stack<int>(); s.Push(10); |
HashSet<T> |
ชุดข้อมูลไม่ซ้ำ |
var set = new HashSet<int>{1,2,3}; |
SortedList<TKey,TValue> |
Dictionary แบบเรียงลำดับ |
var sl = new SortedList<int,string>(); |
LinkedList<T> |
Linked List |
var ll = new LinkedList<int>(); ll.AddLast(1); |
ObservableCollection<T> |
Collection ที่แจ้ง event |
var oc = new ObservableCollection<string>(); |
ConcurrentQueue<T> |
Thread-safe Queue |
var cq = new ConcurrentQueue<int>(); |
ConcurrentDictionary<TKey,TValue> |
Thread-safe Dictionary |
var cd = new ConcurrentDictionary<int,string>(); |
3️⃣ File I/O (System.IO)
Class |
คำอธิบาย |
ตัวอย่าง |
File |
อ่าน/เขียนไฟล์ |
File.WriteAllText("a.txt","Hello"); |
FileInfo |
ข้อมูลไฟล์ |
var fi = new FileInfo("a.txt"); |
Directory |
จัดการโฟลเดอร์ |
Directory.CreateDirectory("test"); |
DirectoryInfo |
ข้อมูลโฟลเดอร์ |
var di = new DirectoryInfo("test"); |
Stream |
Base stream |
Stream s = File.OpenRead("a.txt"); |
FileStream |
อ่าน/เขียนไฟล์แบบ stream |
using var fs = new FileStream("a.txt", FileMode.Open); |
MemoryStream |
Stream ใน memory |
MemoryStream ms = new MemoryStream(); |
StreamReader |
อ่านไฟล์ text |
using var sr = new StreamReader("a.txt"); |
StreamWriter |
เขียนไฟล์ text |
using var sw = new StreamWriter("a.txt"); |
BinaryReader |
อ่านไฟล์ binary |
var br = new BinaryReader(File.OpenRead("a.bin")); |
BinaryWriter |
เขียนไฟล์ binary |
var bw = new BinaryWriter(File.OpenWrite("a.bin")); |
4️⃣ LINQ / Query (System.Linq)
Class |
คำอธิบาย |
ตัวอย่าง |
Enumerable |
ฟังก์ชัน LINQ สำหรับ IEnumerable |
var evens = numbers.Where(n=>n%2==0); |
Queryable |
LINQ สำหรับ IQueryable |
var q = db.Users.Where(u=>u.Age>20); |
IEnumerable<T> |
Collection แบบ iteration |
foreach(var x in list) { ... } |
IQueryable<T> |
LINQ Query |
var q = db.Users.Where(u=>u.Age>20); |
5️⃣ Threading / Task (System.Threading / Tasks)
Class |
คำอธิบาย |
ตัวอย่าง |
Thread |
สร้าง thread |
Thread t = new Thread(()=>Console.WriteLine("Hi")); t.Start(); |
Task |
Async Task |
Task.Run(()=>Console.WriteLine("Hello")); |
CancellationToken |
ยกเลิก Task |
var cts = new CancellationTokenSource(); |
SemaphoreSlim |
Lock แบบ async |
var sem = new SemaphoreSlim(1); |
Monitor |
Lock object |
lock(obj){ ... } |
Mutex |
Thread synchronization |
var m = new Mutex(); m.WaitOne(); |
6️⃣ Networking / Web (System.Net)
Class |
คำอธิบาย |
ตัวอย่าง |
HttpClient |
ส่ง HTTP request |
var client = new HttpClient(); var r = await client.GetStringAsync("https://example.com"); |
HttpRequestMessage |
Request object |
var req = new HttpRequestMessage(HttpMethod.Get, url); |
HttpResponseMessage |
Response object |
var resp = await client.SendAsync(req); |
WebClient |
Client แบบง่าย |
var wc = new WebClient(); var html = wc.DownloadString(url); |
Uri |
URL object |
Uri uri = new Uri("https://example.com"); |
7️⃣ Serialization / JSON (System.Text.Json / Newtonsoft.Json)
Class |
คำอธิบาย |
ตัวอย่าง |
JsonSerializer |
Serialize/Deserialize |
var json = JsonSerializer.Serialize(obj); |
JsonDocument |
อ่าน JSON |
var doc = JsonDocument.Parse(json); |
JsonElement |
Element ของ JSON |
var name = doc.RootElement.GetProperty("name").GetString(); |
JsonSerializerOptions |
Options |
var opt = new JsonSerializerOptions{ WriteIndented=true }; |
JObject |
Newtonsoft JSON object |
JObject obj = JObject.Parse(json); |
8️⃣ Regular Expression (System.Text.RegularExpressions)
Class |
คำอธิบาย |
ตัวอย่าง |
Regex |
Pattern match |
Regex r = new Regex(@"\d+"); |
Match |
Result ของ Regex |
var m = r.Match("123"); |
MatchCollection |
Collection ของ Match |
var matches = r.Matches("abc123def456"); |
Group |
Group ของ Match |
var g = m.Groups[1].Value; |
GroupCollection |
Collection ของ Groups |
var gc = m.Groups; |
9️⃣ Data / SQL (System.Data)
Class |
คำอธิบาย |
ตัวอย่าง |
DataTable |
ตารางข้อมูล |
DataTable dt = new DataTable(); |
DataRow |
แถวของ DataTable |
DataRow r = dt.NewRow(); |
DataSet |
Collection ของ DataTable |
DataSet ds = new DataSet(); |
SqlConnection |
SQL Connection |
using var conn = new SqlConnection(connStr); conn.Open(); |
SqlCommand |
SQL Command |
var cmd = new SqlCommand("SELECT * FROM Users", conn); |
SqlDataReader |
อ่านผลลัพธ์ |
var reader = cmd.ExecuteReader(); |
SqlParameter |
Parameter |
`cmd.Parameters.AddWithValue("@id", 1); |