Может кто-нибудь помочь с этим кодом MSDN?

1

Еще новичок в С#, пытаясь изо всех сил разобраться, но Ive уже обнаружил ошибки в некотором коде MSDN. Сегодня я попробовал код примера на http://msdn.microsoft.com/en-us/library/c1sez4sc(v=vs.110).aspx, но просто не могу заставить его работать.

Мой вопрос: где именно указать путь к каталогу?

Я попытался вставить string path = "c:\\test"; после

public static void Main(string[] args)
    { 

но это не сработало.

Может кто-нибудь, пожалуйста, помогите мне?

Теги:

1 ответ

3

Связанный образец использует аргументы командной строки для получения своего ввода (это то, что заполняется массивом args). Это означает, что вы запускаете программу следующим образом:

MySampleApp.exe "C:\Test"

Установка переменной path ничего не делает, поскольку эта переменная создается и привязана к foreach в самой следующей строке. Во всяком случае, вам нужно будет переназначить переменную args.

Поскольку вы, скорее всего, новичок в С#, обратите внимание на обзор. "Область" - это область, в которой живет переменная. Всякий раз, когда вы создаете переменную, она доступна для ее области действия и ниже ее. Когда компилятор просматривает переменную, она выбирает самое глубокое совпадение.

Области определяются {}, поэтому

void Main(string[] args)
{  //New scope here (function scope)
   string path = "C:\Test"; //Creates variable at function scope

   foreach (string path in args) //Declare a new variable called path, the 
                                 //foreach semantic scopes it to the next block
   {                             
      ... //Any reference to "path" here will reference the foreach 
          //iteration variable, NOT the function scope variable
   }

Надеюсь, это поможет объяснить, почему ваш код не сделал то, что вы считали!

  • 1
    Технически, вам не нужно указывать путь C:\Test поскольку в нем нет встроенных пробелов. Но это маловероятно во всем, кроме самых искусных примеров, поэтому я думаю, что это лучший пример.
  • 0
    @CodyGray Не проблема. Размещение цитат - определенно лучшая практика!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню