Инициализация массива структур: Array initializers can only be used in a variable or field initializer - C#
Формулировка задачи:
В С++ можно создать массив стркутур и тут же ее проинициализировать:
Пытаюсь тоже самое сделать на C#:
Выдает: "Array initializers can only be used in a variable or field initializer. Try using a new expression instead."
Как проще всего реализовать инициализацию?
struct AmplPalette
{
double Ampl;
int R;
int G;
int B;
}
const AmplPalette palette[] =
{
{12.0, 0, 0, 140},
{18.0, 0, 0, 196},
{21.0, 38, 143, 224},
{26.0, 1, 252, 239},
{30.0, 0, 206, 0},
{35.0, 23, 255, 23},
{39.0, 255, 255, 0},
{42.0, 128, 0, 0},
{45.0, 232, 0, 0}
}; public struct AmplPalette
{
public double Ampl;
public int R;
public int G;
public int B;
}
public Color GetAmplToColor(double ampl)
{
const AmplPalette [] palette =
{
{12d, 0, 0, 140},
{18d, 0, 0, 196},
{21d, 38, 143, 224},
{26d, 1, 252, 239},
{30d, 0, 206, 0},
{35d, 23, 255, 23},
{39d, 255, 255, 0},
{42d, 128, 0, 0},
{45d, 232, 0, 0}
};
}Решение задачи: «Инициализация массива структур: Array initializers can only be used in a variable or field initializer»
textual
Листинг программы
new[] {
new MyStruct ("a", 1),
new MyStruct ("b", 5),
new MyStruct ("q", 29)
}