Compiler Error CS0650
Bad array declarator: To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type.
An array was declared incorrectly. In C#, unlike in C and C++, the square brackets follow the type, not the variable name. Also, realize that the syntax for a fixed size buffer differs from that of an array.
Example
The following example code generates CS0650.
// CS0650.cs
public class MyClass
{
public static void Main()
{
// Generates CS0650. Incorrect array declaration syntax:
int myarray[2];
// Correct declaration.
int[] myarray2;
// Declaration and initialization in one statement
int[] myArray3= new int[2] {1,2}
// Access an array element.
myarray3[0] = 0;
}
}
The following example shows how to use the fixed keyword when you create a fixed size buffer:
// This code must appear in an unsafe block.
public struct MyArray
{
public fixed char pathName[128];
}
See Also
Reference
Fixed Size Buffers (C# Programming Guide)
fixed Statement (C# Reference)
Change History
Date |
History |
Reason |
---|---|---|
September 2008 |
Added better explanation and code example. |
Customer feedback. |