Encapsulamento C # newbie

Novo em C # e entendo que o encapsulamento é apenas uma forma de "proteger dados". Mas ainda não estou claro. Eu pensei que oponto de get e set accessors foram para adicionar testes dentro desses métodos para verificar se os parâmetros atendem a determinados critérios, antes de permitir que uma função externa obtenha e defina qualquer coisa, assim:

private string myName;
public string MyName;// this is a property, speical to c#, which sets the backing field.

private string myName = "mary";// the backing field.

public string MyName // this is a property, which sets/gets the backing field.
{
    get
    {
        return myName;
    }
    set
    {
        if (value != "Silly Woman"){ 
           myName = value;
        }

    } 
}

Mas eu tenho visto código em c # que apenas se parece com isso:

public string MyName { get; set; }

Por que você teria apenas um get e set com nada lá, - não é o mesmo que apenas declarar o seu público de apoio privado? Se você pode apenas pegar e definir de fora, por que você não faria isso diretamente?

questionAnswers(5)

yourAnswerToTheQuestion