C# 3.0 在单独的类中为每个实体创建属性有什么用?
我正在学习一些好的代码实践,这就是为什么我要学习一些代码,一些我在其中无法理解的东西。它为每个实体在单独的类中创建了属性,就像它在userClass中拥有的属性一样C# 3.0 在单独的类中为每个实体创建属性有什么用?,c#-3.0,C# 3.0,我正在学习一些好的代码实践,这就是为什么我要学习一些代码,一些我在其中无法理解的东西。它为每个实体在单独的类中创建了属性,就像它在userClass中拥有的属性一样 #region public properties private int uid; public int userId { get { return uid; } set { uid = value; } } private string uName;
#region public properties
private int uid;
public int userId
{
get { return uid; }
set { uid = value; }
}
private string uName;
public string userName
{
get { return uName; }
set { uName = value; }
}
private string pwd;
public string password
{
get { return pwd; }
// set { pwd = value; }
}
private string uAddress;
public string userAddress
{
get { return uAddress; }
set { uAddress = value; }
}
private string fName;
public string firstName
{
get { return fName; }
set { fName = value; }
}
private string lName;
public string lastName
{
get { return lName; }
set { lName = value; }
}
private string uPhone;
public string userPhone
{
get { return uPhone; }
set { uPhone = value; }
}
private string uMobile;
public string userMobile
{
get { return uMobile; }
set { uMobile = value; }
}
private int secretQuestion;
public int securityQuestion
{
get { return secretQuestion; }
set { secretQuestion = value; }
}
private string userAnswer;
public string answer
{
get { return userAnswer; }
set { userAnswer = value; }
}
#endregion
从业务逻辑类来看,它使用属性,而不是直接使用任何实体的属性名,但是我很困惑,需要什么来创建这样的属性
除此之外,它还有数据库列名的enum,这背后有一个明确的原因,即如果在不久的将来我们必须更改数据库表的字段名,那么我们不必更改整个业务逻辑类,我们可以直接更改enum,但是创建这样的属性有什么用请详细说明这一点属性可以在接口上定义,但成员字段不能。因此,如果需要将此类重构为实现接口的类,可以将属性放在接口上(然后让其他类也实现它们)。可以在接口上定义属性,但成员字段不能。因此,如果您需要将该类重构为实现接口的类,您可以将属性放在接口上(然后让其他类也实现它们)。您真的在问为什么它使用属性而不是公共字段吗 字段是一个实现细节——它们是数据的存储方式,外部世界不应该关心这些,至少对于99%的类型来说是这样。属性是类型就其API而言所具有的契约的一部分-实现取决于类型。换句话说,这是一个封装的问题。属性可以在接口中表示为抽象方法等,因为它们将契约和实现分开 此外,属性使数据绑定、调试和其他各种事情变得更简单。我有一本书,你可能会觉得有用 话虽如此,这些属性的实现方式非常繁琐,而且它们不遵守.NET命名约定。我会把它们写成:
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
// etc
你真的在问为什么它使用属性而不是公共字段吗 字段是一个实现细节——它们是数据的存储方式,外部世界不应该关心这些,至少对于99%的类型来说是这样。属性是类型就其API而言所具有的契约的一部分-实现取决于类型。换句话说,这是一个封装的问题。属性可以在接口中表示为抽象方法等,因为它们将契约和实现分开 此外,属性使数据绑定、调试和其他各种事情变得更简单。我有一本书,你可能会觉得有用 话虽如此,这些属性的实现方式非常繁琐,而且它们不遵守.NET命名约定。我会把它们写成:
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
// etc
一些类似的问题: 除此之外:事实上,你可以很容易地决定自己的公共领域或财产。更容易理解的是: (1)
Name
是类Person
(2) 速度
是类平面的属性
(3)
Empty
是类String
的公共字段。如果你说String
有一个名为Empty
的属性,那真的很奇怪。而且String
有一个属性Length
很容易理解。一些类似的问题:
除此之外:事实上,你可以很容易地决定自己的公共领域或财产。更容易理解的是:
(1) Name
是类Person
(2) 速度
是类平面的属性
(3)
Empty
是类String
的公共字段。如果你说String
有一个名为Empty
的属性,那真的很奇怪。而且String
有一个属性Length
很容易理解。你说那些属性是以乏味的方式实现的,怎么实现的?你说那些属性是以乏味的方式实现的,怎么实现的?可能重复的