更新:2007 年 11 月

错误消息

找不到隐式类型数组的最佳类型。

数组元素都必须为同一类型,或者可根据编译器所使用的类型推理规则隐式转换为同一类型。最佳类型必须为数组表达式中的类型之一。元素不会转换为诸如 object 之类的新类型。对于隐式类型的数组,编译器必须根据为其分配的元素类型推断该数组的类型。

更正此错误

  • 为该数组指定显式类型。

  • 为所有数组元素指定同一类型。

  • 为可能会导致问题的那些元素提供显式强制转换。

示例

下面的代码生成 CS0826,因为数组元素的类型不完全相同,并且编译器的类型推理逻辑未找到一个最佳类型:

 复制代码
// cs0826.cs
public class C
{
    public static int Main()
    {
        var x = new[] { 1, "str" }; // CS0826

        char c = 'c';
        short s1 = 0;
        short s2 = -0;
        short s3 = 1;
        short s4 = -1;
            
        var array1 = new[] { s1, s2, s3, s4, c, '1' }; // CS0826
        return 1;
    }
}

请参见

参考

隐式类型的局部变量(C# 编程指南)