【问题标题】:What is the best way to give variable/argument from one class to another using C#使用 C# 将变量/参数从一个类传递给另一个类的最佳方法是什么
【发布时间】:2019-05-28 11:47:14
【问题描述】:

在类之间传递参数/变量的“良好做法”是什么?更好的是使用getset 或者例如class1.a = class2.b

也许存在更好的方法?感谢您的帮助。

【问题讨论】:

  • 这里的ab 是什么?它们是类的属性还是公共成员?
  • 取决于上下文。如果类是相关的,您可能希望将该关系添加为属性本身,而不是在属性之间复制引用。
  • 您首先会考虑向类构造函数添加参数,以便立即正确初始化对象,并且您永远不会忘记该分配。下一个属性。 CopyFrom() 方法或工厂方法有时是明智的。
  • 是的,有better ways。哦,抱歉,您必须浏览 300.000 个其他问题,因为每个人都喜欢问一个新问题。

标签: c# class variables


【解决方案1】:

我真的不知道你想如何使用它,所以在简短的回答中给出这样的一般性建议有点困难。

在最基本的层面上,我想说你可以像这样使用 getter 和 setter:

public class Class1 {
    public int A { get; set; }
}

public class Class2 {

    public int B { get; private set; }

    public Class2 {
        B = 42;
    }
}

public class SomeClass {

    Class1 class1 = new Class1();
    Class2 class2 = new Class2();

    ...

    private void SomeMethod() {
        class1.A = class2.B;
    }

    ...

}

我同意 st_stefanov 的观点,即您不想使用公共变量。

【讨论】:

    【解决方案2】:

    这是架构问题,答案可能很大,取决于项目和您使用的架构细节。

    一般而言,对于您的示例,应通过公共/内部/受保护的属性(即通过 get;set;)而不是通过公共变量来公开类的变量。使用公共变量是不好的做法。

    但即使这样在更高级的架构中也不是一件好事。 例如。查看 SOLID 原则。 这是我们在工作中使用的一篇好文章:

    https://williamdurand.fr/2013/07/30/from-stupid-to-solid-code/

    【讨论】:

    • 谢谢,我去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2021-07-25
    • 2021-04-12
    • 2021-04-21
    相关资源
    最近更新 更多