我有一个字典,其中键是元组,其中第一项是日期,第二项是字符串.我希望字典不区分大小写.
我知道如果键只是一个字符串,我可以在声明字典时将StringComparer.OrdinalIgnoreCase作为参数传递,但是当键是元组时,这似乎不起作用.
有没有办法指定要在元组的第二项上使用的StringComparer?
谢谢
我正在编写一个应用程序,我想存储用户选择的文件列表.目前,我的一个设置是名为filesToFetch的StringCollection,它是用户范围的,包含程序应该获取的所有文件的路径.我有一个按钮,允许用户将新文件添加到列表中.这是按钮单击事件的代码
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
Properties.Settings.Default.filesToFetch.Add(openFileDialog1.FileName);
Properties.Settings.Default.Save();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将新文件添加到StringCollection时,我收到错误
NullReference异常未处理
你调用的对象是空的.
我认为这可能会发生,因为filesToFetch尚未初始化,但我不确定.我可能是错的,但我认为一个对象在初始化时会得到一个名称,并且由于我的设置都在设计时获得了名称,我认为它们会在程序运行时自动初始化,但现在我想我可能是错的对这个.这是问题,还是我错过了别的什么?
这是我的设置的屏幕截图以供参考.

我有一个 VBA 子程序,它可以调用其他人编写的子程序。偶尔,另一个 sub 会打开一个带有 OK 按钮的 MsgBox。另一个 sub 需要很长时间才能运行,我调用了数百次,所以我希望能够在一夜之间运行它。不幸的是,我想不出一种在 MsgBox 上自动单击“确定”的方法。
我试过了
Application.DisplayAlerts = False
Run Code Online (Sandbox Code Playgroud)
但这不会抑制消息框。
有没有办法做到这一点?
谢谢
为什么我不能这样做?
IHasOperatingSystem {
IOperatingSystem OperatingSystem { get; }
}
Computer<T> : IHasOperatingSystem where T : IOperatingSystem {
public T OperatingSystem { get; }
}
Run Code Online (Sandbox Code Playgroud)
它告诉我类型应该是IOperatingSystem,但如果T实现IOperatingSystem,那应该不够吗?
此外,我意识到这个问题的标题可能有点令人困惑,但我想不出更好的方式来表达它.