Универсальный язык сценариев для [закрывших] окон

Существует на самом деле (тонкое) различие между двумя. Предположите, что у Вас есть следующий код в 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 директива.

5
задан Phil 9 July 2009 в 16:09
поделиться

10 ответов

@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"

2
ответ дан 18 December 2019 в 05:40
поделиться

VBScript и JScript - два таких языка.

13
ответ дан 18 December 2019 в 05:40
поделиться
  • вы можете использовать командные файлы без подключения любого дополнительного ПО.
  • PowerShell включен в Windows 7 (RC) по умолчанию и не может быть удален; с XP / Vista вам необходимо установить его
6
ответ дан 18 December 2019 в 05:40
поделиться
2
ответ дан 18 December 2019 в 05:40
поделиться

cmd

VbScript будет работать, но вы, вероятно, захотите пройти через боль при установке powershell.

Это может быть удивительно для для установки программного обеспечения Windows необходимо дважды щелкнуть программу установки.

Если серьезно, если вы собираетесь изучить новую оболочку для Windows, изучите PowerShell, очень-очень хорошо.

1
ответ дан 18 December 2019 в 05:40
поделиться

Для XP и Vista вы можете использовать расширенные функции в сценариях оболочки cmd.exe .

1
ответ дан 18 December 2019 в 05:40
поделиться

Powershell .

Требуется установка, но оно того стоит.

4
ответ дан 18 December 2019 в 05:40
поделиться

Как пользователю Linux я думаю, вам понравится Portablepython .

1
ответ дан 18 December 2019 в 05:40
поделиться

Файлы BAT все еще используются.

Powershell должен заменить VBS и JS в качестве предпочтительного языка сценариев на компьютерах с Windows, но я не уверен, можно ли предположить, что он присутствует все же. Однако .Net 1.0 - довольно безопасный вариант.

1
ответ дан 18 December 2019 в 05:40
поделиться

PowerShell, без тени сомнения. Это будущее (и, к счастью, настоящее) сценариев в Windows.

Загрузите PowerShell

0
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: