Вопросы с тегом «c#»

C # - это многопарадигмальный управляемый объектно-ориентированный язык программирования со сборкой мусора, созданный Microsoft параллельно с платформой .NET.

5
Когда и почему вы должны использовать void (вместо, например, bool / int)
Иногда я сталкиваюсь с методами, в которых разработчик решил вернуть что-то, что не критично для функции. Я имею в виду, что, глядя на код, он, очевидно, работает так же хорошо, как voidи, после некоторого момента я спрашиваю: «Почему?» Это звучит знакомо? Иногда я соглашусь с тем, что чаще всего лучше …

6
Несколько классов в одном файле .cs - хорошо или плохо? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Желательно ли создавать несколько классов в файле .cs или каждый файл .cs должен иметь …
30 c#  code-smell 

6
Следует ли жестко кодировать ожидаемые результаты модульного теста?
Должны ли ожидаемые результаты модульного теста быть жестко закодированы или они могут зависеть от инициализированных переменных? Увеличивают ли жестко закодированные или рассчитанные результаты риск внесения ошибок в модульный тест? Есть ли другие факторы, которые я не учел? Например, какой из этих двух форматов является более надежным? [TestMethod] public void GetPath_Hardcoded() …
30 c#  unit-testing 

5
Когда и зачем использовать вложенные классы?
Используя объектно-ориентированное программирование, у нас есть возможность создать класс внутри класса (вложенный класс), но я никогда не создавал вложенный класс за 4 года своего опыта программирования. Для чего нужны вложенные классы? Я знаю, что класс может быть помечен как закрытый, если он вложенный, и что мы можем получить доступ ко …

7
Как лечить необработанные исключения? (Завершить приложение против сохранить его в живых)
Что лучше всего делать, когда в настольном приложении возникают необработанные исключения? Я думал о том, чтобы показать сообщение пользователю, чтобы он мог связаться со службой поддержки. Я бы порекомендовал пользователю перезапустить приложение, но не заставлять его. Подобно тому, что обсуждается здесь: ux.stackexchange.com - Как лучше всего обрабатывать неожиданные ошибки приложения? …

4
Новый нуль-условный оператор C # 6.0 противоречит Закону Деметры?
Закон Деметры гласит следующее: Каждый юнит должен иметь только ограниченные знания о других юнитах: только юниты, «тесно» относящиеся к текущему юниту. Каждый юнит должен разговаривать только со своими друзьями; не разговаривай с незнакомцами Поговорите только со своими непосредственными друзьями. В C # 6.0 введен новый оператор, называемый нулевым условным оператором …

6
Создать новый объект или сбросить каждое свойство?
public class MyClass { public object Prop1 { get; set; } public object Prop2 { get; set; } public object Prop3 { get; set; } } Предположим , у меня есть объект myObjectиз MyClassи мне нужно сбросить свои свойства, что лучше создать новый объект или переназначить каждое свойство? Предположим, у …

5
Почему Java / C # не может реализовать RAII?
Вопрос: Почему Java / C # не может реализовать RAII? Пояснение: я знаю, что сборщик мусора не является детерминированным. Таким образом, при использовании текущих возможностей языка метод Dispose () объекта не может быть вызван автоматически при выходе из области видимости. Но можно ли добавить такую ​​детерминистическую функцию? Мое понимание: Я …

11
Объявление интерфейса в том же файле, что и базовый класс, это хорошая практика?
Чтобы быть взаимозаменяемыми и тестируемыми, обычно сервисы с логикой должны иметь интерфейс, например public class FooService: IFooService { ... } Что касается дизайна, я согласен с этим, но одна вещь, которая беспокоит меня при таком подходе, заключается в том, что для одного сервиса вам нужно объявить две вещи (класс и …

3
Необязательные параметры или перегруженные конструкторы
Я реализую DelegateCommand, и когда я собирался реализовать конструктор (ы), я предложил следующие два варианта дизайна: 1: Наличие нескольких перегруженных конструкторов public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: Наличие только одного конструктора с необязательным …

8
C # Generics - Как избежать избыточного метода?
Давайте предположим, что у меня есть два класса, которые выглядят так (первый блок кода и общая проблема связаны с C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Эти классы не могут быть изменены каким-либо …
28 c#  generics 

6
Есть ли реальное преимущество для общего репозитория?
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Читал некоторые статьи о преимуществах создания универсальных репозиториев для нового приложения ( пример ). Идея кажется хорошей, потому что она позволяет мне использовать один и тот же …

15
Разумно ли переходить назад и вперед между двумя языками программирования? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

4
Перехват против Инъекции: решение архитектуры платформы
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Есть эта структура, которую я помогаю разработать. Есть некоторые общие задачи, которые должны быть выполнены с использованием некоторых общих компонентов: журналирование, кеширование и повышение событий в частности. …

14
Новичок ищет совет по программированию в целом [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.