Что это за директива C using? - PullRequest
13 голосов
/ 24 июня 2009

Я видел этот оператор C # using в примере кода:

using StringFormat=System.Drawing.StringFormat;

О чем это все?

Ответы [ 7 ]

32 голосов
/ 24 июня 2009

Это псевдоним typename к более короткому имени. Тот же синтаксис также может использоваться для псевдонимов пространств имен. См. с использованием директивы .

(Обновлено в ответ Ричарду)

13 голосов
/ 24 июня 2009

Это псевдоним . Теперь пользователь может использовать StringFormat для ссылки на System.Drawing.StringFormat . Это полезно, если вы не хотите использовать все пространство имен (например, в случае проблем с именами).

источник: с использованием директивы MSDN

7 голосов
/ 24 июня 2009

Возможно, другой, не связанный StringFormat объявлен в другом пространстве имен, например Acme.Stuff.Если бы это было так, это могло бы вызвать путаницу:

using System.Drawing; // Contains StringFormat type.
using Acme.Stuff;  // Contains another StringFormat type.

private void Foo()
{
    StringFormat myFormat = new StringFormat(); // which one to use?
}

Псевдоним с с использованием в StringFormat = System.Drawing.StringFormat очищает некоторые изспутанность сознания.

3 голосов
/ 24 июня 2009

Это определит псевдоним для System.Drawing.StringFormat.

Это то же самое, что и в этом примере:

using SQL = System.Data.SqlServer;

SQL.SqlConnection sql = new SQL.SqlConnection();
2 голосов
/ 24 июня 2009

Это псевдоним для пространства имен

2 голосов
/ 24 июня 2009

Это означает, что вы используете StringFormat в качестве псевдонима для System.Drawing.StringFormat;

1 голос
/ 24 июня 2009

Ключевое слово using используется для импорта пространств имен или классов псевдонимов или для управления областью действия на одноразовых объектах. Здесь речь идет об использовании пространства имен.

using StringFormat=System.Drawing.StringFormat;

Использование было немного необычным в C #, но более распространенным в выражениях импорта Java. Он предоставляет псевдоним StringFormat без импорта всего пространства имен System.Drawing. Некоторым людям, имеющим опыт работы с Java, нравится проактивно импортировать только используемые классы, а не целые anmespaces (или пакеты Java). Возможно, вы заранее избегаете потенциальных конфликтов имен, если импортируете только определенные имена классов, но это не очень распространено в C #, и Visual Studio не поощряет это, как, скажем, Netbeans для Java.

Более распространенное использование псевдонимов - преобразование имен классов в сокращенный псевдоним в случае конфликта имен.

using System.Drawing;
using AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing;
/* AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing has a StringFormat class */
using AwesomeStringFormat = AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing.Stringformat;
using StringFormat = System.Drawing.StringFormat;

public class AwesomeForm() : Form
{
    private AwesomeForm()
    {
        AwesomeStringFormat stringFormat = new AwesomeStringFormat();
        stringFormat.Color = Color.Red;
        /* etc */
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...