c#中的类定义用不同的方法

SSC*_*SSC 0 c# class

我想在C#中定义一个类.我找到了这两种方法:

方法1:

public class customer
{
   private string _name ;
   private string _family;

   public string Name
   {
      get { return __name; }
      set { if(value=="")message(" ??? ??????? ?? ???? ???? ");
          _name= value; }
   }

   public string Family
   {
      get { return _family; }
      set { if(value=="")message(" ??? ??????? ?? ???? ???? ");
          _family= value; }
   }

   public void AddCustomer() 
   {
      add _name and _family to database
   }
}
Run Code Online (Sandbox Code Playgroud)

方法2:

public class customer
{
   public void AddCustomer(string name ,string family) 
   {
      //code to add a customer
   }
}
Run Code Online (Sandbox Code Playgroud)

我很迷惑; 哪一个应该使用,这两种方法有什么区别?哪一个更好,更常用?

Jon*_*eet 10

我不会做其中任何一个.您正在引入一个AddCustomer customer类上调用的方法.我不希望Customer了解数据库 - 我希望某种数据访问层或客户存储库能够了解它.

A Customer可能有一个构造函数采取名称和家庭,或任何其他,然后你CustomerRepository会有一个Add(Customer)方法.

以另一种方式来思考:我希望在没有任何数据库知识的情况下使用Customer类(应该有资本C符合.NET命名约定)是完全合理的,因此可能不应该知道数据库.

不可否认,我自己在自定义XML序列化方面打破了这些自己的规则,允许静态FromXElement方法和实例方法ToXElement...但至少不涉及外部依赖性.

  • 我自己也不能说得更好,+ 1. (2认同)