C# 有人能解释一下下面的代码吗?

C# 有人能解释一下下面的代码吗?,c#,C#,-->输出:姓名:David 在上面的代码中,我们使用了“get”和“set”方法 现在 使用制度; 班级计划 { 班主任{ using System; class Program { class Person { protected int Age {get; set;} protected string Name {get; set;} } class Student : Person { public Student(

-->输出:姓名:David

在上面的代码中,我们使用了“get”和“set”方法

现在

使用制度; 班级计划 { 班主任{

using System;
class Program
{
    class Person {
        protected int Age {get; set;}
        protected string Name {get; set;}
    }
    class Student : Person {
        public Student(string nm) {
            Name = nm;
        }
        public void Speak() {
            Console.Write("Name: "+Name);
        }
    }
    static void Main(string[] args)
    {
        Student s = new Student("David");
        s.Speak();
    }
}
-->输出:姓名:David


在这里,我删除了“get”和“set”方法,但输出是相同的。那么这些方法有什么用?

您可以确保没有错误的输入,或者在属性更改时基本上执行其他代码…

您的问题不清楚。您发布的代码中没有名为get或set的方法。声明一项没有get和set的类上的d被视为字段,而不是属性;字段的处理方式不同。没有实际函数的{get;set;}被称为自动属性访问器,使该项成为具有自动支持字段的属性。例如,Student.Name在第一个示例中可以使用,但在第二个示例中不起作用。
        protected string Name;
    }
    class Student : Person {
        public Student(string nm) {
            Name = nm;
        }
        public void Speak() {
            Console.Write("Name: "+Name);
        }
    }
    static void Main(string[] args)
    {
        Student s = new Student("David");
        s.Speak();
    }
}