private string sdu_name;//声明字段
  
public string StudentName{//声明属性
      get{ return sdu_name; }
      set{
         if(value==null) sdu_name = "admin";
         sdu_name = value;
      }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

代码解释

这段代码是C#语言中用于实现属性(Property)的一个典型示例,涉及到面向对象编程中的封装概念。具体解释如下:

  1. 字段(Field)声明:
private string sdu_name;//声明字段
  • 1.

这一行声明了一个私有(private)字段 sdu_name,类型为 string。字段是类内部用来存储数据的变量,由于它是私有的,所以只能在该类的内部访问。

  1. 属性(Property)声明:
public string StudentName{//声明属性
    get{ return sdu_name; }
    set{
       if(value==null) sdu_name = "admin";
       sdu_name = value;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

这里定义了一个公共(public)属性 StudentName,它提供了对私有字段 sdu_name 的访问控制。属性是类的成员,用于封装字段,使得外界可以通过预定义的方式访问和修改字段值,而无需直接操作字段本身。

  • get 访问器:
get{ return sdu_name; }
  • 1.

get 访问器用于读取属性的值。当外部代码读取 StudentName 属性时,这段代码会被执行,直接返回 sdu_name 字段的值。

  • set 访问器:
set{
   if(value==null) sdu_name = "admin";
   sdu_name = value;
}
  • 1.
  • 2.
  • 3.
  • 4.

set 访问器用于设置属性的值。当外部代码给 StudentName 赋新值时,这段代码会被执行。这里有一个逻辑判断,如果尝试设置的值 valuenull,则不会将 null 赋给 sdu_name,而是将其默认设置为 "admin"。否则,sdu_name 将被赋予传入的新值。

总结来说,这段代码通过定义一个公共属性 StudentName 来控制对私有字段 sdu_name 的访问,实现了数据的封装和一定的业务逻辑(即不允许 StudentNamenull,若尝试设置为 null,则默认设为 "admin")。getset 访问器分别负责读取和设置该属性的逻辑。