В чем преимущество использования псевдонимов пространства имен в С#?
В чем преимущество использования псевдонимов пространства имен? Это хорошо только для упрощения кодирования?
Ответы
Ответ 1
Как и все остальные, это полезно для устранения неоднозначности типов, когда вам нужно одновременно импортировать несколько пространств имен.
Это, по-видимому, противоречит мнениям других людей, но может также оказаться полезным для уточнения сферы действия между двумя доменами:
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;
Ответ 2
Я использую псевдонимы пространства имен, только если у меня конфликты с классами.
для меня это не упрощает вообще.
Мое мнение: если нет необходимости, не используйте его.
Ответ 3
Они полезны, когда у вас конфликты. Например, если у вас есть типы NamespaceA.Jobber
и NamespaceB.Jobber
, и вы хотите использовать их как в одном классе, вы не сможете просто добавлять инструкции using
для NamespaceA и NamespaceB, потому что тогда компилятор выиграл ' t знать, что вы имеете в виду, если вы наберете Jobber
. В этом случае вы должны указать псевдоним для одного или обоих пространств имен.
Это может сделать ваш код более четким, особенно если пространство имен длинное, поскольку альтернатива заключается в том, чтобы все пространство имен было выписано каждый раз, когда вы используете тип.
Ответ 4
В случаях, когда существуют конфликтующие имена типов, использование псевдонима избавит вас от необходимости использовать полностью квалифицированные имена. Например, имя TextBox
используется в обоих следующих пространствах имен.
System.Windows.Forms.TextBox
System.Web.UI.WebControls.TextBox
Опора на порядок использования объявлений будет довольно хрупкой и будет помогать только с одним из пространств имен. Лучше было бы назначить каждому из пространств имен псевдоним.
Ответ 5
Псевдоним пространства имен полезен для разрешения двусмысленности двух или более классов с тем же именем в вашем коде. Например, у вас есть класс Button из вашей winform, и у вас также есть класс Button из вашей третьей библиотеки. Когда код youur ссылается на Button, вы можете захотеть количественно оценить его со стороны третьей стороны и не захотеть поместить полный длинный текст повсюду и скорее использовать псевдоним using CompanyX = CompanyX.UI.Animated.Control
... CompanyX.Button
Фактически, я просто использую его ранее в рабочем проекте, чтобы сделать мой код более удобочитаемым. Я использую автоматизацию Office Word и вместо того, чтобы определять переменную Application везде и трудно отличить ее от моего фактического класса Application, я определяю использование Word=Microsoft.Office.Interop.Word
, а в коде, который я могу сказать Word.Application
, ссылаться на объект приложения Word
Ответ 6
Обычно я использую псевдонимы пространства имен при использовании двух классов с тем же именем.
Ответ 7
afaik при создании псевдонима пространства имен - значения статических переменных для каждого псевдонима являются собственными и не зависят от других псевдонимов
+ упрощение