我在 ASP.NET razor 页面 (cshtml) 上运行以下代码,遇到了可怕的“未将对象引用设置为对象实例”的问题。有人可以帮我解决这个问题吗?我正在使用的代码如下,导致问题的行是 menu[1][0] = "About";
string[][] menu = new string[5][];
menu[0] = new string[2];
// First menu item
menu[0][0] = "Home";
// First menu URL
menu[0][1] = "#";
// Second menu item
menu[1][0] = "About";
// Second menu URL
menu[1][1] = "#";
// Third menu item
menu[2][0] = "Contact";
// Third menu URL
menu[2][1] = "#";
// Fourth menu item
menu[3][0] = "More Info";
// Fourth menu URL
menu[3][1] = "#";
// Fifth menu item
menu[4][0] = "Test";
// Fifth menu URL
menu[4][1] = "#";
提前致谢
最佳答案
您只初始化了menu
中的第一个元素。尝试 for 循环:
for (int i = 0; i < menu.Length; ++i)
{
menu[i] = new string[2];
}
或者你可以这样写:
string[][] menu =
{
new string[] {"Home", "#"},
new string[] {"About", "#"},
new string[] {"Contact", "#"},
new string[] {"More Info", "#"},
new string[] {"Test", "#"}
};
或者改用矩形数组:
string[,] menu =
{
{"Home", "#"},
{"About", "#"},
{"Contact", "#"},
{"More Info", "#"},
{"Test", "#"}
};
并且由于您的第二个元素是常量,也许您根本不需要存储它 - 在这种情况下您可以只使用 string[]
。
string[] menu = { "Home", "About", "Contact", "More Info", "Test" };
关于c# - "Object reference not set to an instance of an object"初始化多维数组时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282193/