Использование выражений против пути пространства имен? С#
Недавно я прекратил использовать "using statements" и вместо этого использовал полный путь пространства имен любого объекта .NET, который я вызываю.
Пример:
using System;
namespace QuizViewer
{
class Class1
{
Console.WriteLine("Hello World!");
}
}
Вот что я делаю сейчас.
namespace QuizViewer
{
class Class1
{
System.Console.WriteLine("Hello World!");
}
}
Прежде чем вы спросите, почему я это делаю, я использую этот стиль, чтобы я мог точно видеть, откуда идут мои объекты, и его проще при использовании разных объектов Timer и других объектов с похожими именами.
Есть ли увеличение или уменьшение производительности для этого стиля программирования?
Ответы
Ответ 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, вы обнаружите, что компилятор всегда ссылается на все типы по полному имени. Это абсолютно идентичные способы работы.