Why does this code compile and run when param2
is non-nullable? I can't find anything in the docs saying that a default value is used when null
is passed to a non-nullable constructor parameter via Activator.CreateInstance(...)
?
[Test]
public void Test()
{
Class @class = (Class)Activator.CreateInstance(typeof(Class), "param1value", null);
//@class.Param1 = "param1value"
//@class.Param2 = 0
}
public class Class
{
public Class(string param1, int param2)
{
Param1 = param1;
Param2 = param2;
}
public string Param1 { get; }
public int Param2 { get; }
}