Lazy loaded property readability
?? is well known operator in C#.  It doesn't confuse but reduce coding. 

Both snippets have same meaning.

But if it is .NET 4.0 onwards, i would rather use Lazy&lt;T&gt;.

private Lazy&lt;string&gt; lazyStringField = new Lazy&lt;string&gt;(GetStringField);
protected string StringField
{
    get
    {
        return lazyStringField.Value;
    }
}