📦 default(int) is Verbose. default is Clean.
Before C# 7.1, you needed default(T). default literal infers type. Cleaner generic code, default parameters.
❌ Old Way
int i = default(int); string s = default(string); Listlist = default(List );
✅ Default Literal
int i = default; string s = default; Listlist = default;
🎯 Real-World Usage
// Optional parameters with default
void Process(int value = default) { }
// Generic methods
T GetDefault() => default;
// Null-coalescing with default
int pageSize = GetPageSize() ?? default;
// Pattern matching with default
if (result is default) { }
// Switch expression default case
string result = value switch
{
> 0 => "positive",
< 0 => "negative",
_ => default // returns null for string
};
💡 Benefits
- Less typing (default vs default(T))
- Type inference works everywhere
- Cleaner generic code
- Works in all contexts (fields, variables, parameters)
“default(T) was redundant. Type already known. default is cleaner. Small change, big readability improvement.”
