Да, я думаю, вы поняли правильно - хотя в более поздних версиях C # есть более краткий способ написать это:
public string Domain { get; set; }
Почему? Все дело в инкапсуляции. Если вы сделаете так, как вы предлагаете, вы можете позже изменить определение свойства Domain, не затрагивая любой вызывающий код, который использует это свойство. Поскольку ваш класс общедоступен и, возможно, может вызываться кодом, который вы не написали, это потенциально очень важно.