Can somebody provide a example of this?
I have tried null
,string.Empty
and object initialization but they don't work since default value has to be constant at compile time
Just use the null coalescing operator and an instance of empty List<string>
public void Process(string param1, List<string> param2 = null) { param2 = param2 ?? new List<string>(); // or starting with C# 8 param2 ??= new List<string>(); }
The problem with this is that if "param2" is null and you assign a new reference then it wouldn't be accessible in the calling context.
You may also do the following using default
which IS a compile-time-constant (null
in the case of a List<T>
):
void DoSomething(List<string> lst = default(List<string>)) { if (lst == default(List<string>)) lst = new List<string>(); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With