button5的代码如下
private void button5_Click(object sender, EventArgs e)
  {
    string aa;                
    for (int i = 1; i <= 3; i++)
    {
      aa =@"ave";
    }
    FileStream fs = new FileStream(@"d:\cads\temp\temp.gs", FileMode.Create);
    StreamWriter streamWriter = new StreamWriter(fs);                    
    streamWriter.WriteLine(aa);
    fs.Close();
  }
为什么会提示我在streamWriter.WriteLine(aa);这个语句使用了未赋值的局部变量aa呢?谢谢大家!要怎么修改才可以不出错啊?

解决方案 »

  1.   

    aa =@"ave"; @"ave"应该米取到值
      

  2.   

    在aa定义的时候赋一下默认值.
    string aa = "";
      

  3.   

    string aa;                 
        for (int i = 1; i  <= 3; i++) 
        { 
          aa =@"ave"; 
        FileStream fs = new FileStream(@"d:\cads\temp\temp.gs", FileMode.Create); 
        StreamWriter streamWriter = new StreamWriter(fs);                     
        streamWriter.WriteLine(aa); 
        fs.Close(); 
        } 
        
    这样试试。
      

  4.   

     for (int i = 1; i  <= 3; i++) 
        { 
          aa =@"ave"; 
        } 你这样是在做什么
      

  5.   


    private void button5_Click(object sender, EventArgs e) 
      { 
        string aa="";                 
        for (int i = 1; i  <= 3; i++) 
        { 
          aa =@"ave"; 
        } 
        FileStream fs = new FileStream(@"d:\cads\temp\temp.gs", FileMode.Create); 
        StreamWriter streamWriter = new StreamWriter(fs);                     
        streamWriter.WriteLine(aa); 
        fs.Close(); 
      } 
      

  6.   

    丫的,问题太深了。
         for (int i = 1; i  <= 3; i++) 
        { 
          aa =@"ave"; 
        } 
    还有这样的代码?
      

  7.   

    在aa定义的时候赋一下默认值.string aa = "";
    这样应该不会报错了,但是
         for (int i = 1; i  <= 3; i++) 
        { 
          aa =@"ave"; 
        }
    这是在干什么?
      

  8.   

    果然是初值的问题,失败啊,赋一个初值就好了,回5楼和9楼的,俺在for循环里还有代码,比较长,所以用这个代替了一下,不影响出问题的代码正好,9楼的兄弟好有趣,的确不应该有这样子的代码,呵呵,谢谢大家,谢谢!
      

  9.   

    因为微软比较蠢,它不知道楼主写的aa = @"ave";肯定可以执行
      

  10.   

    .NET 对没有付初值的变量检查很严格,这样避免了customer的invalid use variable.