I was wondering, what is the preferred way to construct a new object in C#?
Take a Person class:
public class Person
{
private string name;
I always work on the basis that you should pass values to a constructor which are mandatory for that object to exist in a valid state.
In you example you could say that new person cannot exists without an age so that should be passed in to the contructor.
If you work on the basis that an object should model a real work entity then that determines the minimum necessary to make any object valid - whether you set those as default values or by passing values in via the constructor.