2016-10-16 7 views
0

私はエラーが発生しています。私はなぜC#でうまくいかず、ガイドに従っていてとても似ているので、なぜわかりません。ですから、私はstr変数をStreamReader変数inputFileに代入すると、暗黙的に型boolを文字列に変換できないというエラーが出ます。ファイルから行を読み取ろうとしているときに、bool型を暗黙的にstringに変換することはできません。 c#

if (openFile.ShowDialog() == DialogResult.OK) 
        { 
         StreamReader inputFile = File.OpenText(openFile.FileName); 

         String str; 

         // Getting the error here 
         while (str = inputFile.ReadLine() != null) 
         { 
          str = inputFile.ReadLine(); 
          listBox1.Items.Add(str); 
         } 

        } else 
        { 
         MessageBox.Show("Canceled"); 
        } 

答えて

1

それは

while ((str = inputFile.ReadLine()) != null) 

ホープ((STR = inputFile.ReadLine())!= null)の間、STR

を割り当てる部分の周りに、

+0

ありがとうございます:) – user3152311

0

てみ括弧を支援する必要があります

+0

ありがとうございます:) – user3152311

0

ファイルを読み込むだけでよい場合は、の代わりにFile.ReadAllLinesを使用してみてくださいあなたはconsize

if (openFile.ShowDialog() == DialogResult.OK) 
    listBox1.Items.AddRange(File.ReadAllLines(openFile.FileName)); 
    else 
    MessageBox.Show("Canceled"); 
1

それはあなたがブラケットを追加するときに問題を見ることが容易になり得るでしょう:

while (str = (inputFile.ReadLine() != null)) 

コンパイラは代入しようと、その後、ブール値であるinputFile.ReadLine() != nullの結果を評価していますそれはstr

に次のように括弧を追加することにより、評価のデフォルトの順序を変更してください:

while ((str = inputFile.ReadLine()) != null) 
0

これは、演算子の優先順位のためです。 !=オペレータは=よりhigher precedenceを有しているので、

inputFile.ReadLine() != null 

が最初に評価され、その結果(BOOL)は変数STR(文字列)に割り当てられます。

C#でcannot implicitly convert type string to boolが原因でエラーが発生しました。

関連する問題