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) {
}
}