Каков наилучший способ передать переменную / аргумент из одного класса в другой, используя C # - PullRequest
0 голосов
/ 28 мая 2019

Каковы "хорошие практики" при передаче аргументов / переменных между классами? Лучше использовать get и set или, может быть, дать, например, class1.a = class2.b?

Может быть, существуют лучшие способы? Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 28 мая 2019

Я действительно не знаю, как вы хотите это использовать, поэтому довольно сложно дать такой общий совет в кратком ответе.

На самом базовом уровне, я бы сказал, вы можете просто использовать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, что вы не захотите использовать публичные переменные.

1 голос
/ 28 мая 2019

Это архитектурный вопрос, и ответ может быть большим, и это зависит от проекта и особенностей используемой вами архитектуры.

Обычно для вашего примера раскрытие переменных класса должно осуществляться через открытые / внутренние / защищенные свойства (т. Е. Через get; set;), а не через открытые переменные. Использование открытых переменных - плохая практика.

Но даже это не очень хорошо для более продвинутой архитектуры. Например. Посмотрите на ТВЕРДЫЕ принципы. Вот хорошая статья, которую мы используем на работе:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...