Использование операторов vs путь к пространству имен? C # - PullRequest
20 голосов
/ 08 июля 2011

Недавно я перестал использовать s и вместо этого использовал полный путь к пространству имен любого объекта, который я вызываю.

Пример:

using System;    

namespace QuizViewer
{
    class Class1
    {
        Console.WriteLine("Hello World!");
    }
}

Это то, что я делаю сейчас.

namespace QuizViewer
{
    class Class1
    {
        System.Console.WriteLine("Hello World!");
    }
}

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

Есть ли какое-либо увеличение или уменьшение производительности в этом стиле программирования?

Ответы [ 6 ]

36 голосов
/ 08 июля 2011

Существует нулевая разница в производительности, потому что компилятор ВСЕГДА вводит полное имя - использование является лишь подсказкой для компилятора, среда выполнения этого не знает или не поддерживает.

Однако, как только вы запомните, гдеобъекты приходят от вас, вы будете смотреть на это как глупо и многословно.Просто так много шума, и люди просто знают, что Path из System.IO, Console в System, а StringBuilder в System.Text.

Один недостаток вашего подхода: без использования никаких методов расширения внетекущее пространство имен.Получайте удовольствие от написания System.Linq.Enumerable.Where(inputSequence,...) вместо просто inputSequence.Where(...):)

6 голосов
/ 08 июля 2011

Я думаю, что этот стиль приводит к снижению производительности программиста :). Я использую оператор using, и обычно из кода ясно, к какому пространству имен принадлежит класс. Если нет, нажмите F12.
Просто мой 2с.

6 голосов
/ 08 июля 2011

Краткий ответ №: это тот же код, который компилируется.

5 голосов
/ 08 июля 2011

Единственный удар по производительности - это удар, который вы делаете, чтобы напечатать все это, и когда вы или другие читаете его.

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

5 голосов
/ 08 июля 2011

Нет влияния на производительность;это в основном стилистический выбор.Я считаю, что использование операторов using уменьшает беспорядок.Кроме того, с Intellisense достаточно легко увидеть полностью определенное пространство имен.

0 голосов
/ 29 октября 2016

Если вы разберете оба этих фрагмента кода и посмотрите на код IL, вы обнаружите, что компилятор всегда ссылается на все типы по его полным именам.Это абсолютно идентичные способы работы типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...