Extension methods — add methods to existing types without inheritance.
Definition:
1public static class StringExtensions2{3 public static bool IsNullOrEmpty(this string str)4 {5 return string.IsNullOrEmpty(str);6 }78 public static string Truncate(this string str, int maxLength)9 {10 if (str.Length <= maxLength)11 return str;12 return str[..maxLength] + "...";13 }14}
Usage:
1using MyApp.Extensions; // Required!23string name = "Alice";4if (name.IsNullOrEmpty()) { }5string truncated = name.Truncate(3); // "Ali..."
Rules:
LINQ is extension methods:
1list.Where(x => x > 5)2 .Select(x => x * 2)3 .ToList();