Что это за C # & # 8220; использование & # 8221; Директива?

StackOverflow https://stackoverflow.com/questions/1035073

  •  07-07-2019
  •  | 
  •  

Вопрос

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

using StringFormat=System.Drawing.StringFormat;

О чем это все?

Это было полезно?

Решение

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

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

Другие советы

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

source: используя статью директивы из MSDN

Возможно, другой, не связанный 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 устраняет некоторую путаницу.

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

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

using SQL = System.Data.SqlServer;

SQL.SqlConnection sql = new SQL.SqlConnection();

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

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

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

using StringFormat=System.Drawing.StringFormat;

Метод использования, использованный здесь, немного необычен в C #, но более распространен в операторах импорта Java. Он предоставляет псевдоним StringFormat без импорта всего пространства имен System.Drawing. Некоторым людям, имеющим опыт работы с Java, нравится проактивно импортировать только используемые классы, а не целые пространства (то есть пакеты 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 */
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top