O que significa a sintaxe { get; set; } em C# e para que serve?
Olá a todos! Comecei a estudar C# recentemente e em um dos exemplos de código me deparei com uma sintaxe estranha:\n\n```csharp\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n```\n\nNão consigo entender o que significam essas chaves com `get; set;` dentro. Por que não posso simplesmente escrever `public string Name;` como um campo normal? Qual é a diferença?\n\nTentei usar campos normais e o código também funcionou:\n\n```csharp\npublic class Person\n{\n public string Name;\n public int Age;\n}\n```\n\nMas todo mundo diz que é preciso usar propriedades, e não campos. Estou confuso. Expliquem, por favor, o que é `{ get; set; }`, como funciona e para que serve. Especialmente, tenho curiosidade de por que nos exemplos frequentemente escrevem `{ get; set; }` com ponto e vírgula, e não com algum código.