我正在努力在菜单中显示音频输入设备列表,而且我对 C# 还很陌生。输入设备的数量不仅因机器而异,而且在程序运行时有人可能会添加或减去 USB 设备。我编写了在菜单被激活时检查的代码,但我必须限制可能的输入设备的数量。输入设备不太可能超过 10 个,但是,为了更好地理解 C#,我想看看是否可以使用泛型,这样我就不必限制列表。
这是我现在要做的代码:
MainMenu sgFileMenu = new MainMenu();
List<MenuItem> inputDevice = new List<MenuItem>();
MenuItem myMenuItemInput = new MenuItem("&Input Devices");
sgFileMenu.MenuItems.Add(myMenuItemInput);
for (int i = 0; i < deviceCount; i++)
{
myMenuItemInput.MenuItems.Add(inputDevice[i]);
}
编译但在我运行它时会给出 ArgumentOutOfRange 异常。我显然错过了一些关于如何设置泛型的东西——有人能告诉我吗?
在阅读了一些评论后添加 - deviceCount 是一个整数,而不是 0 - 在其他地方检查过。似乎很明显我需要先做一些事情:
myMenuItemInput.MenuItems.Add(inputDevice[i]);
但我不确定那是什么。