У нас есть битва в нашей команде разработчиков по этому поводу. Мне бы хотелось услышать, что другие думают об этом.
Может ли кто-нибудь дать мне ДЕЙСТВИТЕЛЬНО хорошую причину использовать имена типов CLR вместо имен типа С# (псевдонимы) в коде (как общая практика)?
Ответ 1
В текущем коде? Нет, если только у вас не будет много людей, работающих над кодом, которые знакомы с .NET, но не с С#.
В именах участников? Абсолютно. Например, предположим, что Convert.ToSingle
был вызван Convert.ToFloat
- это было бы совершенно путано для разработчиков F #, для которых "float
" означает "64-битная плавающая точка".
Мое общее правило - псевдонимы С# для реализации, типы CLR для имен членов.
Если вы хотите найти некоторые аргументы в пользу использования имен типа CLR во всем мире, Джефф Рихтер рекомендует это в "CLR via С#". (Если вы еще этого не получили, купите экземпляр, независимо от этого, это замечательная книга.) Я не соглашался с аргументами, которые он выдвинул, но там есть, во всяком случае.
Ответ 2
Я обычно использую псевдоним С# при объявлении переменной, но типы CLR для статических членов. Я думаю, мне просто нравится визуальное различие, которое он предоставляет.
Ответ 3
Ответ 4
(Хотя это не особо сильная причина), я предпочитаю имена типов над псевдонимами из-за стандартной раскладки IntelliSense.
Ответ 5
Моя предыдущая команда разработчиков приняла эту практику из-за сочетания разработчиков С# и Visual Basic.NET. Было решено, что типы CLR облегчат общение людей С# и VB.NET.
Ответ 6
Я думаю, что почти единственный раз, когда имеет смысл всегда использовать имена типа CLR, в магазине смешанного языка. Еще одна возможность заключается в том, что вы планируете перейти от текущего языка к другому в ближайшем будущем. В этом случае я бы пошел с именами типа CLR.
Кроме этого, действительно нет сильной мотивационной причины выбирать одну методологию по сравнению с другой. Гораздо важнее, чтобы вы пришли к консенсусу так или иначе и убедитесь, что все следуют "стандарту".
Ответ 7
Я думаю, что имеет смысл последовательно использовать имена типов CLR при вызове методов типа статического типа, так как в любом случае вы должны это делать на перечислениях. Поэтому для объявления используйте имена типов С#, но при вызове статических членов используйте типы CLR. Это облегчает чтение и более последовательное имхо. Поскольку вы не можете писать:
MyEnum value = enum.Parse(typeof(MyEnum), "value");
который лучше подойдет:
int i = int.Parse("1");
long l = long.parse("1");
Вы предпочитаете писать:
int i = Int32.Parse("1");
long l = Int64.Parse("1");
MyEnum value = Enum.Parse(typeof(MyEnum), "value");
Ответ 8
Неа. Я не могу. Мне кажется, что здесь используются псевдонимы:)