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

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

10
Что такое правильное использование downcasting?
Понижение означает преобразование из базового класса (или интерфейса) в подкласс или листовой класс. Примером снижения может быть, если вы приведете System.Objectк другому типу. Даункастинг непопулярен, может быть, пахнет кодом: доктрина объектно-ориентированного подхода предпочитает, например, определять и вызывать виртуальные или абстрактные методы, а не унижать. Какие, если таковые имеются, хорошие и …

16
Сколько свободы должен иметь программист в выборе языка и структуры?
Я начал работать в компании, которая в первую очередь ориентирована на C #. У нас есть несколько человек, которым нравятся Java и JRuby, но большинство программистов здесь любят C #. Меня наняли, потому что у меня большой опыт создания веб-приложений, и потому что я склоняюсь к новым технологиям, таким как …

7
Если функции должны выполнить нулевые проверки перед выполнением намеченного поведения, это плохой дизайн?
Так что я не знаю, хороший это или плохой дизайн кода, поэтому я подумал, что лучше спросить. Я часто создаю методы, которые выполняют обработку данных с использованием классов, и я часто проверяю методы, чтобы убедиться, что я не получаю нулевые ссылки или другие ошибки заранее. Для очень простого примера: // …
66 c#  design  validation 

12
Нарушает ли конструктор, который проверяет свои аргументы, SRP?
Я стараюсь максимально придерживаться принципа единой ответственности (SRP) и привык к определенной схеме (для SRP по методам), в значительной степени полагаясь на делегатов. Я хотел бы знать, является ли этот подход обоснованным или есть ли какие-либо серьезные проблемы с ним. Например, чтобы проверить ввод в конструктор, я мог бы ввести …

12
Наличие флага, указывающего, должны ли мы выдавать ошибки
Я недавно начал работать в месте с некоторыми намного более старшими разработчиками (приблизительно 50 лет). Они работали над критическими приложениями, касающимися авиации, где система не могла выйти из строя. В результате старший программист имеет тенденцию кодировать этот путь. Он имеет тенденцию помещать логическое значение в объекты, чтобы указать, должно ли …

5
В чем разница между реализацией интерфейса явно или неявно?
В Visual Studio я могу щелкнуть правой кнопкой мыши по интерфейсу и выбрать «Реализовать интерфейс» или «Явно реализовать интерфейс». public class Test : ITest { public string Id // Generated by Implement Interface { get { throw new NotImplementedException(); } } string ITest.Id // Generated by Implement Interface Explicitly { …
64 c#  syntax 

11
Как я могу убедить моего босса, что ANSI C не подходит для нашего нового проекта? [закрыто]
Несколько месяцев назад мы начали разработку приложения для управления собственным испытательным оборудованием и записи набора измерений. Он должен иметь простой пользовательский интерфейс и, вероятно, потребует потоков из-за непрерывной записи, которая должна иметь место. Это приложение будет использоваться в течение нескольких лет, и в течение этого периода его будут поддерживать некоторые …

11
Является ли большое логическое выражение более читабельным, чем то же выражение, разбитое на методы предикатов? [закрыто]
Что легче понять: большой логический оператор (довольно сложный) или тот же оператор, разбитый на методы предикатов (много дополнительного кода для чтения)? Вариант 1, большое логическое выражение: private static bool ContextMatchesProp(CurrentSearchContext context, TValToMatch propVal) { return propVal.PropertyId == context.Definition.Id && !repo.ParentId.HasValue || repo.ParentId == propVal.ParentId && ((propVal.SecondaryFilter.HasValue && context.SecondaryFilter.HasValue && propVal.SecondaryFilter.Value …
63 c#  readability 

11
Этот класс дизайн нарушает принцип единой ответственности?
Сегодня у меня был спор с кем-то. Я объяснял преимущества наличия модели богатых доменов по сравнению с моделью анемичных доменов. И я продемонстрировал свою точку зрения с помощью простого класса, который выглядит так: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } …

3
&& и || не логические, а условные операторы?
Меня немного смущает документация MSDN C #, в которой говорится, что &и |являются логическими операторами, &&а ||также условными операторами. Я продолжаю звонить &&, ||и !логические операторы, так что я не прав?

6
Почему C # был создан с ключевыми словами «new» и «virtual + override» в отличие от Java?
В Java есть нет virtual, new, overrideключевые слова для определения метода. Таким образом, работа метода легко понять. Потому что, если DerivedClass расширяет BaseClass и имеет метод с таким же именем и тем же подписью BaseClass тогда наиважнейшим будет проходить время выполнения полиморфизма ( при условии , что метод не является …

17
Зачем использовать ОО-подход вместо гигантского «переключателя»?
Я работаю в .Net, C # shop, и у меня есть коллега, который настаивает на том, чтобы мы использовали гигантские операторы Switch в нашем коде с большим количеством «падежей», а не с более объектно-ориентированными подходами. Его аргумент последовательно восходит к тому факту, что оператор Switch компилируется в «таблицу переходов процессора» …

7
Как вы кодируете алгебраические типы данных в C # или Java-подобном языке?
Есть некоторые проблемы, которые легко решаются алгебраическими типами данных, например, тип List может быть очень кратко выражен как: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap f b) l = ConsCell 1 (ConsCell …

6
Должны ли мы создать новый единственный экземпляр HttpClient для всех запросов?
недавно я наткнулся на это сообщение в блоге от asp.net monsters, в котором говорится о проблемах с использованием HttpClientследующим образом: using(var client = new HttpClient()) { } Согласно сообщению в блоге, если мы располагаем HttpClientпосле каждого запроса, он может держать соединения TCP открытыми. Это может потенциально привести к System.Net.Sockets.SocketException. Правильный …
58 c#  http-request 

12
Действительно ли ловить общие исключения - это плохо?
Я обычно согласен с большинством предупреждений анализа кода и стараюсь их придерживаться. Тем не менее, мне сложнее с этим: CA1031: не перехватывать общие типы исключений Я понимаю обоснование этого правила. Но на практике, если я хочу предпринять одно и то же действие независимо от выданного исключения, зачем мне обращаться с …
58 c#  design  exceptions 

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