C# 3.0 C#中用于创建setter和getter的语法是什么?

C# 3.0 C#中用于创建setter和getter的语法是什么?,c#-3.0,get,set,C# 3.0,Get,Set,我熟悉这个新语法: public string Name { get; set; } 但是如果我是这个变量的设置者,需要进行某种检查呢。例如,我想将整个字符串转换为所有小写 public string Name { get; set { ???? } } getter和setter都需要一个backing字段(不能有部分自动属性): 您不能定义部分自动属性。您必须使用老式的方法:定义支持字段并自己实现getter和setter逻辑。然后您不能使用自动生成

我熟悉这个新语法:

public string Name { get; set; }
但是如果我是这个变量的设置者,需要进行某种检查呢。例如,我想将整个字符串转换为所有小写

public string Name
{
   get;
   set 
   {
      ????
   }
}

getter和setter都需要一个backing字段(不能有部分自动属性):


您不能定义部分自动属性。您必须使用老式的方法:定义支持字段并自己实现getter和setter逻辑。

然后您不能使用自动生成的get/set功能:

private string _name;

public string Name
{
   get {return _name;}
   set 
   {
     _name = value.ToLower();
   }
}
string _name;

public string Name {
    set { _name = value.ToLower(); }
    set { return _name; }
}

公共字符串名称{get;set;}
这些称为自动实现的属性。在C#3及更高版本中,可以对属性使用此语法。但是,如果要在设置之前对该值执行任何操作,则这没有帮助。另一个缺点是,必须同时使用set和get,不能只声明getter。另一种方法是将setter设置为私有。在您的情况下,必须使用旧版本的属性

private string _name;
public string Name
{
   get {return _name;}
   set 
   {
      //do any operation
     _name = value.ToLower();
   }
}

_这里有关于这个的指导原则-不要使用下划线。@Callum Rogers-ahahahahahahahahahahahahaha。。在一个糟糕的早晨,这让我脸上露出了笑容。
private string _name;
public string Name
{
   get {return _name;}
   set 
   {
      //do any operation
     _name = value.ToLower();
   }
}