字符串被视为null,但已被分配给一个值,为什么会发生这种情况?(使用c#)

本文关键字:为什么 使用 情况 null 分配 字符串 一个 | 更新日期: 2023-09-27 18:13:29

我们一直在创建一个搜索引擎,它可以浏览计算机上的文件夹,并将搜索结果传输到一个列表框中,您可以在其中打开文件和其他子文件夹。我们使用c#编写windows窗体。我有两个windows表单,一个(form1)从用户获取搜索结果,另一个(form2)显示搜索结果。问题是,在我的代码中,我的文件和文件夹找不到,因为我的字符串path1被设置为null,但我已经将它分配给了形式2的值。如果你看一下代码,也许你会更清楚地理解我所说的path1和form2是什么意思。我的问题是如何解决这个问题?我的朋友有相同的代码,它在她的计算机上工作,但由于某种原因,我的设置为null,这阻止了我打开文件和文件夹。

public static string path1;
private void Form2_Load(object sender, EventArgs e)
{
    txtbx_LRU.Text = Form1.gelenveri2;
    txtbx_kisiler.Text = Form1.gelenveri;
    txtbx_parcano.Text = Form1.gelenveri3;
    txtbx_bolum.Text=Form1.gelenveri_bolum;
    txtbx_mod.Text = Form1.gelenveri_mod;
    string path1 = @"C:'svn'DSBCA_PROGRAM'" + txtbx_bolum.Text
            + "''" + txtbx_mod.Text + "''" + txtbx_LRU.Text
            + "''" + txtbx_parcano.Text;
    // All the files/folders in the path1 will be
    // transferred into the array filePaths.
    string[] filePaths = Directory.GetFileSystemEntries(path1);
    // Then we will get the number of how many items 
    // are in the string array 
    int boyut_dosya = filePaths.Length;
    // this loop will go through the array 
    for (int i = 0; i < boyut_dosya; i++) 
    {
        // the slashes in the path will be ignored here
        string[] words = filePaths[i].Split(''''); 
        // How many folders(words) were opened     
        int k = words.Length; 
        // this will get the last file from the path(our desired file)
        lstbx_sonuclar.Items.Add(words[k - 1]);                                     
        // just so we dont over load we set the array words to zero.
        words = null;
        //and k to zero too
        k = 0;
    }
}     
private void lstbx_sonuclar_MouseDoubleClick(object sender, MouseEventArgs e)
{  
   //list box where the results will be displayed
   string a = path1 + "''" + lstbx_sonuclar.SelectedItem.ToString();
   Process.Start(a);
}

字符串被视为null,但已被分配给一个值,为什么会发生这种情况?(使用c#)

Form2_Load中,您创建了一个具有相同名称的本地变量。它隐藏了类成员