为什么我在这个foreach方法中得到一个NullReferenceException ?
本文关键字:一个 NullReferenceException foreach 为什么 方法 | 更新日期: 2023-09-27 18:01:57
int count = 0;
foreach (string s in Settings.Default.Name)
{
count++;
}
Settings.Default.Name[count] = tb_add_name.Text;
Settings.Default.Save();
Settings.Default.Name
是一个空字符串数组,但应该foreach -方法只是不开始,如果字符串数组是空的,而不是给我这个错误?
数组稍后会被单词填充。
是的,但这不会改变count仍然为0的事实,您仍然执行Settings.Default.Name[count] = tb_add_name.Text;
所以你仍然应该检查索引是Valid还是null。比如:
if(Settings.Default.Name != null && Settings.Default.Name.Count > 0)
顺便说一下,你的方法总是会导致IndexOutOfRange
异常,因为你的foreach循环基本上将你的count
变量设置为Array的大小,而Array[Array.Length]
总是超出范围。
可以使用Array Length
属性。
if(Settings.Default.Name.Count > 0)
{
int count = 0;
foreach (string s in Settings.Default.Name)
{
count++;
}
Settings.Default.Name[count] = tb_add_name.Text;
Settings.Default.Save();
}