Каково преимущество использования псевдонимов пространства имен в C#? [дубликат]

Этот вопрос уже имеет ответ здесь:

Каково преимущество использования псевдонимов пространства имен? Действительно ли это хорошо только для, упрощают кодирования?

16
задан masoud ramezani 24 February 2010 в 10:08
поделиться

7 ответов

Как уже говорили все, это полезно для устранения неоднозначности типов, когда вам нужно импортировать несколько пространств имен одновременно.

Похоже, что это противоречит мнению других людей, но также может быть полезно для уточнения области действия между двумя доменами:

using Gilco.Test.ProjectX;
using DevCode = Gilco.Nilfum.Alpha.ProjectX;

public class MyTests
{
    public void TestCase1()
    {
        var car = new DevCode.Car();
        var testCar = new TestCar();
    }
}

Это также может быть полезно в редком случае, когда вам нужно указать пространство имен (для устранения неоднозначности), ваше пространство имен не настолько длинное, чтобы оправдать псевдоним, но, вероятно, скоро изменится (например, когда вы используете пространства имен для одновременной поддержки двух версий пути кода):

using DevCode = Gilco.V1;
6
ответ дан 30 November 2019 в 21:36
поделиться

Они полезны при конфликтах. Например, если у вас есть типы NamespaceA.Jobber и NamespaceB.Jobber , и вы хотите использовать их оба в одном классе, вы не сможете просто добавить используя операторы для NamespaceA и NamespaceB, потому что тогда компилятор не узнает, что вы имеете в виду, если вы наберете Jobber . В этом случае вы должны дать псевдоним одному или обоим пространствам имен.

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

5
ответ дан 30 November 2019 в 21:36
поделиться

В случаях, когда есть конфликтующие имена типов, использование псевдонима избавит вас от необходимости использовать полностью определенные имена. Например, имя TextBox используется в обоих следующих пространствах имен.

System.Windows.Forms.TextBox
System.Web.UI.WebControls.TextBox

Полагаться на порядок объявлений using было бы довольно хрупко и помогло бы только с одним из пространств имен. Лучше было бы присвоить каждому из пространств имен псевдоним.

4
ответ дан 30 November 2019 в 21:36
поделиться

Псевдоним пространства имен полезен для разрешения неоднозначности двух или более классов с одинаковым именем в вашем коде. Например, у вас есть класс Button из вашей winform, а также у вас есть класс Button из вашей третьей библиотеки. Когда ваш код относится к кнопке, вы можете захотеть дать количественную оценку от третьей стороны и не хотите помещать полный длинный текст повсюду, а вместо этого используйте псевдоним , используя CompanyX = CompanyX.UI.Animated.Control . .. CompanyX.Button

На самом деле я просто использую его раньше в рабочем проекте, чтобы сделать мой код более читабельным. Я использую автоматизацию Office Word, и вместо того, чтобы везде определять переменную Application, которую трудно отличить от моего реального класса Application, я определяю, используя Word = Microsoft.Office.Interop.Word , а в коде я могу сказать Word.Application для ссылки на объект приложения Word

1
ответ дан 30 November 2019 в 21:36
поделиться

Я использую псевдонимы пространств имен, только если у меня есть конфликты с классами. Для меня это совсем не упрощает. Мое мнение: если нет необходимости, не используйте.

9
ответ дан 30 November 2019 в 21:36
поделиться

Я обычно использую псевдонимы пространств имен только при использовании двух классов с одинаковыми именами.

0
ответ дан 30 November 2019 в 21:36
поделиться

afaik при создании псевдонима пространства имен - значения статических переменных для каждого псевдонима являются собственными и не зависят от других псевдонимов + упрощение

0
ответ дан 30 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

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