C# 定义类的属性
有人能告诉我两者的区别吗C# 定义类的属性,c#,properties,C#,Properties,有人能告诉我两者的区别吗 public class Vendor { public string VendorName { get; set; } } 及 使用私有变量有什么好处吗?这样做只是浪费时间和线路?类中没有对属性进行任何操作 谢谢没有。我发现auto属性可以很好地清理代码;尤其是在具有较大属性的类中 编辑 需要记住的一点是,如果使用值指定NULL(即,在持久化到DB时;如果DateTime等于DateTime.MinValue,则将NULL保存到数据库),则需要在构造函数中声
public class Vendor
{
public string VendorName { get; set; }
}
及
使用私有变量有什么好处吗?这样做只是浪费时间和线路?类中没有对属性进行任何操作
谢谢没有。我发现auto属性可以很好地清理代码;尤其是在具有较大属性的类中 编辑 需要记住的一点是,如果使用值指定NULL(即,在持久化到DB时;如果DateTime等于DateTime.MinValue,则将NULL保存到数据库),则需要在构造函数中声明 示例 而不是
public class Vendor
{
private DateTime deletedDate = DateTime.MinValue;
public DateTime DeletedDate
{
get { return deletedDate ; }
set { deletedDate = value; }
}
}
你需要这样的东西:
public class Vendor
{
public DateTime DeletedDate { get; set; }
public Vendor()
{
DeletedDate = DateTime.MinValue;
}
}
没有。我发现auto属性可以很好地清理代码;尤其是在具有较大属性的类中 编辑 需要记住的一点是,如果使用值指定NULL(即,在持久化到DB时;如果DateTime等于DateTime.MinValue,则将NULL保存到数据库),则需要在构造函数中声明 示例 而不是
public class Vendor
{
private DateTime deletedDate = DateTime.MinValue;
public DateTime DeletedDate
{
get { return deletedDate ; }
set { deletedDate = value; }
}
}
你需要这样的东西:
public class Vendor
{
public DateTime DeletedDate { get; set; }
public Vendor()
{
DeletedDate = DateTime.MinValue;
}
}
如果这就是你所做的一切,那就没有什么好处了 这些代码块之间的显著区别在于,第一个默认为null,第二个默认为string.Empty
除此之外,我每次都会选择自动属性(选项1)。这是在C#3.0中添加的东西。如果这就是你所做的一切,那就没有好处了,依我看 这些代码块之间的显著区别在于,第一个默认为null,第二个默认为string.Empty
除此之外,我每次都会选择自动属性(选项1)。这是在C#3.0中添加的东西。给定您的示例,这两个变量在语义上是相同的(除了第一个变量的起始值为
null
,第二个变量的起始值为string.Empty
,以及支持变量在auto属性版本中对您的类不可见的事实)。因此,不,使用完全声明的属性没有什么特别的好处,除了能够在声明中设置初始值(就像您在示例中所做的那样)
如果可能的话,我总是更喜欢自动属性,因为它减少了冗余代码(这就是它们存在的原因)。如果需要,可以很容易地在构造函数中设置默认值。给定您的示例,这两个值在语义上是相同的(除了第一个值的起始值为
null
,第二个值的起始值为string.Empty
,并且在auto属性版本中,支持变量对您的类不可见)。因此,不,使用完全声明的属性没有什么特别的好处,除了能够在声明中设置初始值(就像您在示例中所做的那样)
如果可能的话,我总是更喜欢自动属性,因为它减少了冗余代码(这就是它们存在的原因)。如果需要的话,在构造函数中设置默认值非常容易。C#3引入了自动实现的属性,这使得第一个代码片段成为可能。编译器将为您创建备份字段,这将使编译后的代码与第二个代码段的编译后的代码等效。如果您在C#3中工作,则引入了自动实现的属性,这使您的第一个代码片段成为可能。编译器将为您创建备份字段,这将使编译后的代码与第二个代码段的编译后的代码等效。如果你在一家公司工作