Может ли кто-нибудь дать мне действительно веские основания использовать имена типов CLR вместо имен типа C '(псевдонимы) в коде (как общая практика)?

У нас есть немного битва происходит в нашей команде разработчиков по этому поводу. Мне очень хотелось бы услышать, что другие думают об этом.

Ответ на: "Может ли кто-нибудь дать мне действительно веские основания использовать имена типов CLR вместо имен типа C '(псевдонимы) в коде (как общая практика)?"

Количество ответов:8

Нет. Не могу. Мне кажется, что псевдонимы там, чтобы быть использованы :)

В реальном коде? Нет, если вы не собираетесь иметь много людей, работающих над кодом, которые знакомы с .NET, но не с C.

В именах участников? Абсолютно. Например, предположим, что Convert.ToSingle had been called назывался Convert.ToFloat - that would be totally confusing for F# developers, for whom " - это было бы совершенно запутанным для разработчиков ФЗ, для которых float" means "64 bit floating point". означает "64-битная плавучая точка".

Мое общее правило - псевдонимы для реализации, типы CLR для имен участников.

Если вы хотите найти некоторые аргументы в пользу использования CLR типа имен во всем мире, Джефф Рихтер рекомендует, что в "CLR через C". (Если вы еще не получили его, купить копию независимо от этого вопроса - это замечательная книга.) Я не согласен с аргументами, которые он выдвинул, но есть некоторые там, в любом случае.

Я обычно использую псевдоним СЗ при объявлении переменной, но типы CLR для статических членов. Я думаю, мне так же, как визуальное различие она обеспечивает.

Моя предыдущая команда разработчиков приняла эту практику из-за сочетания C и Visual Basic.NET разработчиков. Было решено, что типы CLR сделают его проще для C и VB.NET людей общаться.

Я думаю, что почти единственный раз, когда имеет смысл всегда использовать CLR типа имена в смешанном языке магазин. Еще одна возможность, если вы планируете перейти от текущего языка к другому в ближайшем будущем. В этом случае я хотел бы пойти с CLR типа имен.

Кроме того, на самом деле нет сильной мотивирующей причины, чтобы выбрать одну методологию над другой. Гораздо важнее, что вы приходите к консенсусу, так или иначе, и убедитесь, что все следуют "стандарту".

Я думаю, что имеет смысл последовательно использовать имена типа CLR при вызове статических методов члена типа, как вы должны сделать это на enums в любом случае. Таким образом, для декларирования используйте имена типа C, но при вызове статических членов используйте типы 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");

(Хотя это не особенно веская причина) Я предпочитаю имена типов над псевдонимами из-за стандартной окраски IntelliSense.