2013-08-19 4 views
2

У меня есть простой код в C#не может инициализировать типа 'Int' ошибка

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace MyProject 
{ 
    public static class Class1 
    { 
    public static int[] Iparray = new int { 12, 9, 4, 99, 120, 1, 3, 10 }; 
    } 
} 

однако на (Ctrl + Сдвиг + B) ошибка отображаемая

Cannot initialize type 'int' with a collection initializer because it does not implement 'System.Collections.IEnumerable'

Я использую vs 2010 и и .NET framework 4

Благодарю вас Всего

+1

Без '[]' компилятор пытается выполнить 'int tmp = new int(); tmp.Add (12); tmp.Add (9); ...; Iparray = tmp; '. Это _collection initializer_. –

ответ

6

Вам не хватает скобок. Как это:

int[] a = new int[] { 1, 2, 3 }; 
+1

Как я пропустил это ... – Rohit

+1

Бывает к лучшему из нас – Artless

+0

@Trickery: - Полностью согласен !!! –

1

Попробуйте это: -

public static int[] a = new int[] {12, 9, 4, 99, 120, 1, 3, 10 }; 

вместо

public static int[] Iparray = new int { 12, 9, 4, 99, 120, 1, 3, 10 }; 
3

У вас есть три способа определить int массив:

public static int[] Iparray = { 12, 9, 4, 99, 120, 1, 3, 10 }; 

public static int[] Iparray = new[] { 12, 9, 4, 99, 120, 1, 3, 10 }; 
public static int[] Iparray = new int[] { 12, 9, 4, 99, 120, 1, 3, 10 }; 
1

Вы просто пропустили квадратные скобки;

namespace MyProject 
{ 
    public static class Class1 
    { 
    public static int[] Iparray = new int[] { 12, 9, 4, 99, 120, 1, 3, 10 }; 
    } 
} 

Альтернативные способы объявления int массива;

  • int[] Iparray = { 12, 9, 4, 99, 120, 1, 3, 10 };

  • int[] Iparray = new[] { 12, 9, 4, 99, 120, 1, 3, 10 };

1

Добавить [] в код

public static int[] Iparray = new int[] { 12, 9, 4, 99, 120, 1, 3, 10 };