可以像这样使用C#Property

fer*_*anj 9 .net c#

我的一位开发人员有一个类似于以下代码段的代码

class Data
{
     public string Prop1
     {
           get
           {
                // return the value stored in the database via a query
           }
           set
           {
                // Save the data to local variable
           }
     }

     public void SaveData()
     {
          // Write all the properties to a file
     }

}

class Program
{
    public void SaveData()
    {
         Data d = new Data();
         // Fetch the information from database and fill the local variable
         d.Prop1 = d.Prop1; 
         d.SaveData();
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的Data类属性动态地从DB中获取信息.当需要将数据保存到文件时,开发人员创建实例并使用自我赋值填充属性.然后最后调用一个保存.我试图争论财产的使用是不正确的.但他并不相信.

这是他的观点

  1. 有近20个这样的属性.
  2. 除保存外,不需要获取所有信息.
  3. 编写实用程序方法来获取所有内容,而不是自我赋值,将在属性中具有相同的重复代码.

这种用法是否正确?

Inc*_*ito 17

我不认为使用相同代码的其他开发人员会很高兴看到:

d.Prop1 = d.Prop1; 
Run Code Online (Sandbox Code Playgroud)

就个人而言,我永远不会那样做.

使用属性从DB加载数据也不是最好的主意.我会将method数据从DB加载到本地变量,然后您可以使用属性获取该数据.同时get/set在逻辑上必须使用相同的数据.使用get从数据库获取数据但用于set处理局部变量是很奇怪的.