Существует на самом деле (тонкое) различие между двумя. Предположите, что у Вас есть следующий код в File1.cs:
// File1.cs
using System;
namespace Outer.Inner
{
class Foo
{
static void Bar()
{
double d = Math.PI;
}
}
}
Теперь предполагают, что кто-то добавляет другой файл (File2.cs) к проекту, который похож на это:
// File2.cs
namespace Outer
{
class Math
{
}
}
поиски компилятора Outer
перед рассмотрением тех using
директивы вне пространства имен, таким образом, это находит Outer.Math
вместо System.Math
. К сожалению (или возможно к счастью?), Outer.Math
не имеет никакого PI
участник, таким образом, File1 теперь повреждается.
Это изменяется, если Вы помещаете using
внутренняя часть Ваше объявление пространства имен, следующим образом:
// File1b.cs
namespace Outer.Inner
{
using System;
class Foo
{
static void Bar()
{
double d = Math.PI;
}
}
}
Теперь поиски компилятора System
прежде, чем искать Outer
, находит System.Math
, и все хорошо.
Некоторые утверждали бы, что Math
могла бы быть дурная слава для пользовательского класса, так как уже существует один в [1 114]; точка здесь просто, что там различие, и она влияет на пригодность для обслуживания Вашего кода.
также интересно отметить то, что происходит, если Foo
находится в пространстве имен Outer
, а не Outer.Inner
. В этом случае добавление Outer.Math
в File2 повреждает File1 независимо от того, куда эти using
идет. Это подразумевает, что компилятор ищет самое внутреннее пространство имен включения, прежде чем это посмотрит на любой using
директива.
@OP if you want a "universal" scripting language, why don't you try out Python (for windows, go to ActiveState Python). (Or even Perl/Java etc) As for using batch, powershell, vbscript, the one minor thing to take note is that scripts written in them are not portable to *nix. therefore, cannot be considered "universal"
cmd
VbScript будет работать, но вы, вероятно, захотите пройти через боль при установке powershell.
Это может быть удивительно для для установки программного обеспечения Windows необходимо дважды щелкнуть программу установки.
Если серьезно, если вы собираетесь изучить новую оболочку для Windows, изучите PowerShell, очень-очень хорошо.
Для XP и Vista вы можете использовать расширенные функции в сценариях оболочки cmd.exe .
Как пользователю Linux я думаю, вам понравится Portablepython .
Файлы BAT все еще используются.
Powershell должен заменить VBS и JS в качестве предпочтительного языка сценариев на компьютерах с Windows, но я не уверен, можно ли предположить, что он присутствует все же. Однако .Net 1.0 - довольно безопасный вариант.
PowerShell, без тени сомнения. Это будущее (и, к счастью, настоящее) сценариев в Windows.