This question already has answers here:
Co-variant array conversion from x to y may cause run-time exception
(7个答案)
5年前关闭。
这段代码:
变成类似R#curmudgeon的提示,“从字符串[]到对象[]的协变量数组转换会在写操作时导致运行时异常”。
实际上,这段代码可以完美地工作-组合框中填充了月份值; Resharper打算做什么,我该如何解决它的疑问?
如果仅是通用列表可能包含错误的数据,我就不必担心-如果有问题,查找问题很容易。
它将返回
(7个答案)
5年前关闭。
这段代码:
comboBoxMonth.Items.AddRange(UsageRptConstsAndUtils.months.ToArray());
public static List<String> months = new List<String>
{
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
};
变成类似R#curmudgeon的提示,“从字符串[]到对象[]的协变量数组转换会在写操作时导致运行时异常”。
实际上,这段代码可以完美地工作-组合框中填充了月份值; Resharper打算做什么,我该如何解决它的疑问?
如果仅是通用列表可能包含错误的数据,我就不必担心-如果有问题,查找问题很容易。
最佳答案
方法comboBoxMonth.Items.AddRange
需要object[]
参数。 months.ToArray()
是string[]
。从string[]
转换为object[]
是有效的,但是如果该方法尝试修改数组的元素,则会出现运行时错误。在这种情况下,它不是,因此您可以忽略该警告。
如果您不满意,可以使用ToArray<object>()
comboBoxMonth.Items.AddRange(UsageRptConstsAndUtils.months.ToArray<object>());
它将返回
object[]
,并且不需要强制转换。关于c# - 为什么Resharper用此代码说 “Co-variant array conversion from string[] to object[] can cause run-time exception on write operation”? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33555608/