管理类中的属性/字段(和数据)和方法的最佳实践是什么?

时间:2017-06-08 04:55:12

标签: c# performance class code-readability

问:管理属性/ Fiels及其用于在C#中使用数据获取和设置属性的数据和方法有哪些最佳做法?

我见过两种常见情况:

  1. 将用于加载数据的属性/字段和方法放在一个中 类。通常,在Constructor中调用方法,因此无论何时实例化此类,都会立即调用数据加载方法。 一个简单的例子可以是这样的:

    src/node_modules/*
  2. 将属性/字段放在单独的类中(可以称为存储类)和另一个包含用于加载该类的属性/字段的方法的类。

    public class MetaData
    {
        public MetaData()
        {
            LoadData();
        }
    
        public string Id { get; set; }
        public string Name { get; set; }
        public Double PrivateKey { get; set; }
    
        private void LoadData()
        {
            var rnd = new Random();
            Name= "Farhan";
            Id = Name + '_' + rnd.Next();
            PrivateKey = rnd.NextDouble();
        }
    }
    
  3. 我个人认为第一种方法更好,但我希望了解有关代码管理/可读性和性能相关事物的最佳实践知识。

3 个答案:

答案 0 :(得分:1)

它的偏好。有些像其他方式一样喜欢其他方式。有些遵循某些指导原则,而其他指南则没有遵循行业标准指南。采用SOLID原则 S ,其中单一责任表示您可以只声明属性并创建另一个文件,您只需编写“保存方法”。

其他人可能会在与特定实体相关的单个文件中写入所有 CRUD 操作。但我建议坚持使用 SOLID 原则,并且还应考虑其他一些建议和原则。

答案 1 :(得分:0)

如果你想避免写属性,因为你知道它需要时间所以你所能做的就是节省时间或简单方法就是按ctrl + k + x这样封装窗口打开并自动生成你的属性,其他方法是

Public string id{get;set;}
public string name{get;set;}
public int age {get;set;}

答案 2 :(得分:0)

嗯,这更像是一个设计决策,你的团队需要根据他们遵循的理念来做出决定。

据我说:班级是现实世界实体的蓝图。 真实世界的实体可以有一些属性和一些行为。 所有这些属性和行为必须由您的类蓝图公开。 所以这里有封装的概念。

如果我们谈论构造函数,它们就是初始化器。 在外行语言中,构造函数是对象的初始化器,它确保在将对象传递给程序之前预先初始化使用类的所有必要事物。 例如:人类是一个阶级(现实世界的实体)。对于一个人来说,它的心脏应该是跳动的。 因此,我们将在构造函数中调用其StartBeating方法,以确保在将人员传递给调用者时他仍然活着。

我希望这可以帮助您缩小范围。