Подтвердить что ты не робот

Использование выражений против пути пространства имен? С#

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

Пример:

using System;    

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

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

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

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

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

4b9b3361

Ответ 1

Существует нулевая разница в производительности, потому что компилятор ALWAYS ставит полное имя - использование - это только подсказка для компилятора, среда выполнения не знает или не поддерживает это.

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Использование инструкций должно помочь в удобочитаемости, а не в производительности.

Ответ 5

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

Ответ 6

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