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();
}
}