0

C# で取り組んでいる小さなプロジェクトについて少し助けが必要です。

これが私のコードです:

//TO FETCH DIRECTORY TEST
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads"); 
int count = dir.GetFiles().Length;

私がやりたいことは、「ダウンロード」フォルダーにあるファイルの数を確認することです。

私は2つの問題に遭遇しました。

  1. 最初の問題は、単語Systemに緑色の下線が引かれ、「到達不能なコードが検出されました」と表示されることです。

    最初は、欠落している名前空間が原因である可能性があると考えました。コードをもう一度確認したところ、既にusing System.IO;using System;. これら2つは、ディレクトリ数に必要なものだと思います。

    ですから、なぜ下線が引かれた緑色なのかについてはわかりません。xD

  2. 2番目の問題は、これらの2行のコードをプロジェクトに入れると、コードの別のセクションが壊れることです。これは次のとおりです。

    case "switch window":
    SendKeys.Send("%{TAB " + count + "}");
    count += 1;
    break;
    

「割り当てられていないローカル変数 'c​​ount' の使用」という青で下線が引かれた「count」が表示されます。

ディレクトリの長さを取得するための2行のコードがそれを破る理由に、私はかなり困惑しています。

4

1 に答える 1

2

確実に答えを知るには、あなたのコードをもっと見る必要があります...しかし、ここに役立つアイデアがいくつかあります。

これにより、最初のエラーが発生します

if (false)
{
   // this code is unreachable... false will never be true.
   //TO FETCH DIRECTORY TEST
   System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads"); 
   int count = dir.GetFiles().Length;
}

2番目のエラーは、初期化する前にカウントを使用しているためです...次のようなものです:

int count;
/// ... more code
case "switch window":
  SendKeys.Send("%{TAB " + count + "}");  // uninitialized use.
  count += 1;
  break;

これが必要な場所:

int count;
count = 0;  // now count has a value.
/// ... more code
case "switch window":
  SendKeys.Send("%{TAB " + count.ToString() + "}");
  count += 1;
  break;

最初の原因による 2 番目の原因は明らかです。コードに到達できない場合は、count に値が設定されないため、count が初期化されます。

于 2013-07-30T02:39:52.933 に答える