Запитання з тегом «c#»

C # - це багатопарадигмна керована об'єктно-орієнтована мова програмування, що збирається сміттям, створена Microsoft паралельно з платформою .NET

5
Коли і чому слід використовувати void (замість, наприклад, bool / int)
Іноді я стикаюся з методами, коли розробник вирішив повернути щось, що не є критично важливим для функції. Я маю на увазі, дивлячись на код, він, мабуть, працює так само добре, як voidі після хвилини роздуму, я запитую "Чому?" Це звучить знайомо? Іноді я б погодився, що найчастіше краще повернути щось …

6
Кілька класів в одному файлі .cs - добре чи погано? [зачинено]
Чи доцільно створювати декілька класів у файлі .cs або кожен файл .cs має індивідуальний клас? Наприклад: public class Items { public class Animal { } public class Person { } public class Object { } } На хвилину ухиляючись від факту, що це поганий приклад гарної архітектури, має більше ніж …
30 c#  code-smell 

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 () при виході з області дії. Але чи можна додати таку детерміновану ознаку? Моє розуміння: Я вважаю, що реалізація RAII …

11
Оголошення інтерфейсу в тому ж файлі, що і базовий клас, це хороша практика?
Щоб бути взаємозамінним і перевіреним, зазвичай служби з логікою повинні мати інтерфейс, наприклад public class FooService: IFooService { ... } Я погоджуюсь із дизайном, але я погоджуюся з цим, але одна з речей, яка мене турбує при такому підході, - це те, що для однієї послуги вам потрібно буде оголосити …

6
Чи слід чітко кодувати очікувані результати тесту?
Якщо очікувані результати одиничного тесту повинні бути жорстко кодованими, чи вони можуть залежати від ініціалізованих змінних? Чи збільшують жорсткі або обчислені результати ризик введення помилок в одиничному тесті? Чи є інші фактори, які я не враховував? Наприклад, який із цих двох є більш надійним форматом? [TestMethod] public void GetPath_Hardcoded() { …
29 c#  unit-testing 

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: Маючи лише один конструктор з необов'язковим параметром public …

8
C # Generics - Як уникнути зайвого методу?
Припустимо, у мене є два класи, які виглядають приблизно так (перший блок коду та загальна проблема пов'язані з C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Ці класи неможливо жодним чином змінити (вони є …
28 c#  generics 

6
Чи є реальна перевага для загального сховища?
Це запитання було перенесено із переповнення стека, оскільки на нього можна відповісти на Exchange Stack Exchange. Мігрували 7 років тому . Читав деякі статті про переваги створення загальних сховищ для нового додатка ( приклад ). Ідея здається приємною, оскільки дозволяє мені використовувати одне сховище, щоб робити кілька речей для декількох …

15
Чи розумно переходити між двома мовами програмування? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

4
Перехоплення проти ін'єкції: рішення архітектури рамки
Це питання було перенесено із переповнення стека, оскільки на нього можна відповісти на Exchange Software Stack Exchange. Мігрували 7 років тому . Є ця структура, яку я допомагаю розробляти. Є кілька загальних завдань, які слід виконувати за допомогою деяких загальних компонентів: зокрема ведення журналів, кешування та підвищення подій. Я не …

14
Новачок шукає поради щодо програмування взагалі [закрито]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.