Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 空引用异常openFileDialog 代码: 问题:_C#_Nullreferenceexception - Fatal编程技术网

C# 空引用异常openFileDialog 代码: 问题:

C# 空引用异常openFileDialog 代码: 问题:,c#,nullreferenceexception,C#,Nullreferenceexception,为什么我在最后一行得到一个null引用验证 错误: (原始海报应在此处添加此类内容)不完全理解您的问题,或者为什么需要一名代表,但请在按钮上尝试类似的操作1单击事件处理程序: namespace bla_bla_bla { public delegate void pathSelected(string path); //... public partial class Form1 : Form { public pathSelected onPath; //...

为什么我在最后一行得到一个
null
引用验证

错误:
(原始海报应在此处添加此类内容)

不完全理解您的问题,或者为什么需要一名代表,但请在按钮上尝试类似的操作1单击事件处理程序:

namespace bla_bla_bla

{   public delegate void pathSelected(string path);
 //...
  public partial class Form1 : Form
  {
      public pathSelected onPath;
 //...
  private void button1_Click(object sender, EventArgs e)
  {

    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.Filter ="Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF";
    openFileDialog1.Multiselect = true;
    openFileDialog1.ShowDialog();
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    if (openFileDialog1.SafeFileName != null)
    onPath(openFileDialog1.SafeFileName);
  }

什么是路径?您是否尝试过调试和检查
onPath
openFileDialog1
是否已变为
null
(最后一次不太可能)。我想,
onPath
的类型是
pathSelected
,但是您还没有给它赋值,所以它是
null
。猜“onPath”实际上是“pathSelected”,他试图调用我支持的代理。为什么调用
openFileDialog1.ShowDialog()
两次?是否应该将pathSelected放在路径的某个位置?另外,请注意,
pathSelected
的参数标记为“path”,但是,
SafeFileName
不包括路径,它只返回文件名和扩展名。
int size = -1;
DialogResult result = openFileDialog1.ShowDialog(); 
if (result == DialogResult.OK) {
    string file = openFileDialog1.FileName;
    try {
        string text = File.ReadAllText(file);
        size = text.Length;
    }
    catch (IOException) {
    }
}