Может ли кто-нибудь дать мне ДЕЙСТВИТЕЛЬНО хорошую причину использовать имена типов CLR вместо имен типа С# (псевдонимы) в коде (как общая практика)?

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

Ответ 1

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

В именах участников? Абсолютно. Например, предположим, что Convert.ToSingle был вызван Convert.ToFloat - это было бы совершенно путано для разработчиков F #, для которых "float" означает "64-битная плавающая точка".

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

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

Ответ 2

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

Ответ 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

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