Complementando, existe outra forma de declarar propriedades que caem neste caso mais "comum" (o getter só retorna e o setter só recebe o valor). Basta usar a sintaxe de Auto-implemented properties.
E neste caso, para criar o objeto, use um object initializer:
public class Pessoa
{
// Auto-implemented properties
public string Nome { get; set; }
public int Idade { get; set; }
}
// object initializer
var pessoa = new Pessoa { Nome = "Fulano de tal", Idade = 42 };
Console.WriteLine($"{pessoa.Nome} tem {pessoa.Idade} anos");
Lembrando que para usar object initializer, a classe precisa ter o construtor sem parâmetros.
Ou então vc cria o construtor, aí pode inicializar do jeito mais "tradicional":
public class Pessoa
{
public string Nome { get; set; }
public int Idade { get; set; }
public Pessoa(string nome, int idade)
{
this.Nome = nome;
this.Idade = idade;
}
}
// usa o construtor em vez de object initializer
var pessoa = new Pessoa("Fulano de tal", 42);
Console.WriteLine($"{pessoa.Nome} tem {pessoa.Idade} anos");