字符串被视为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);
}
在Form2_Load
中,您创建了一个具有相同名称的本地变量。它隐藏了类成员