C# - Отключите динамическое ключевое слово

Там какой-либо путь состоит в том, чтобы отключить использование "динамического" ключевого слова в .net 4?

Я думал, что функция Code Analysis VS2010 могла бы иметь правило привести сборку к сбою, если динамическое ключевое слово используется, но я не мог прекрасный.

9
задан chief7 7 May 2010 в 09:17
поделиться

5 ответов

Это часть Язык C # 4.0, так что нет, не совсем.

Вы можете использовать FXCop , чтобы найти его, и вывести сборку из строя, если она встретится.

Вместо этого может работать Style Cop:

http://code.msdn.microsoft.com/sourceanalysis

Вот ссылка, рассказывающая о той же проблеме и о том, как Style Cop может быть ответом. Также есть сообщение о том, как заставить FX Cop потенциально искать ключевое слово dynamic, хотя это не идеально.

http://social.msdn.microsoft.com/Forums/en/vstscode/thread/8ce407ba-bdf7-422b-bbcd-ca4701c3a76f

5
ответ дан 2 November 2019 в 23:59
поделиться

Target .net 1.0? : -)

Или сделайте обзоры кода.

(Или, чтобы быть менее шутливым, должно быть довольно легко написать собственное правило FxCop или CA, запрещающее использование динамического)

Не могли бы вы просто убить для макроса C ++ прямо сейчас? : -)

2
ответ дан 2 November 2019 в 23:59
поделиться

Ключевое слово dynamic не является злом, но его использование может быть злом.

Оно приводит к ошибкам в коде, которые можно обнаружить только во время выполнения. Этого следует избегать любой ценой. Ошибки во время выполнения - это плохо. Ошибки времени компиляции - это хорошо.

Вы можете использовать что-то вроде следующего, чтобы установить свои собственные стандарты. http://joel.fjorden.se/static.php?page=CodeStyleEnforcer

2
ответ дан 2 November 2019 в 23:59
поделиться

Удалите ссылку на Microsoft.CSharp.dll , и я думаю, что, возможно, все варианты использования dynamic не будут компилироваться.

2
ответ дан 2 November 2019 в 23:59
поделиться

Я не уверен, что понимаю, для чего нужен этот иррациональный страх перед ключевым словом dynamic. Был такой тип истерии по поводу анонимных переменных и ключевого слова var для .NET 3.5, за исключением того, что это было просто идиотизмом, поскольку это законные статически определенные типы.

Ключевое слово dynamic служит узкоспециализированной цели, я не понимаю, почему у любого человека может возникнуть желание использовать его, не понимая почему. Однако предотвращение этого может быть решено с помощью одного собрания группы, на котором объясняются некоторые новые функции .NET 4, включая ключевое слово dynamic. Я предполагаю, что вы в большей степени являетесь старшим или старшим руководителем команды; должно быть довольно легко сказать вашей команде, если они когда-нибудь почувствуют, что им НУЖНО использовать ключевое слово dynamic, чтобы прийти к вам ПЕРВЫМ.

Это были именно те инструкции, которые я дал своей команде, поскольку я считаю маловероятным, что мы когда-либо будем использовать ключевое слово dynamic, потому что мы не записываем действия COM-взаимодействия. И после этого я отложу использование любого типа динамического прокси для установленной библиотеки, такой как Linfu или Castle, и оставлю им реализацию динамических прокси, чтобы они использовали или не использовали ключевое слово dynamic.

1
ответ дан 2 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: