For example:
int? qID= null;
answer.QuestionID = int.TryParse(lblID.Text, out qID.Value) ? qID : null; //Error: Property or Indexer may not be passed as an out ot ref parameter.
From microsoft documentation it says that:
"A variable passed as an out argument need not be initialized. However, the out parameter must be assigned a value before the method returns."
and then:
"A property is not a variable and cannot be passed as an out parameter.
So what was the reasoning in the underlying .net platform design to prohibit from setting a property of an object via the out? The value of out does not have to be a reference object either - totally legit to use a value type. So why not?