【发布时间】:2013-05-14 08:27:19
【问题描述】:
代码:
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);
}
问题:
为什么我在最后一行得到 null 引用例外?
错误:
(原海报应在此处添加)
【问题讨论】:
-
什么是
onPath?您是否尝试调试并检查onPath或openFileDialog1是否已变为null(最后不太可能)。我猜onPath的类型是pathSelected,但你还没有给它赋值,所以它是null。 -
猜“onPath”真的是“pathSelected”,他正试图打电话给我的代表
-
为什么要给
openFileDialog1.ShowDialog()打两次电话? -
你应该把 pathSelected onPath 放在某处吗?
-
另外,请注意,
pathSelected的参数标记为“路径”,然而,SafeFileName不包含路径,它只会返回文件名和扩展名。