First of all, there is no such thing as "C# array"! This is a .NET array. You need to understand the role and main ideas of .NET (before applying for a job as .NET developer).
It could be correctly written as
int[] array = new int[100];
That creates an array allocating required memory on heap and
array
variable or some class/structure member becomes a reference to the array object. The array object itself does store 100 primitive
int
objects, 100 integers, not 100 references to something else. (You see, the question refers the term "object", and the understanding of it depends on some culture or conventions. In this context, I traditionally call "object" everything which exists during runtime and takes a place in memory, not only OOP "objects".)
But this is not all. Array itself is not a primitive object, it's an object-oriented reference type, so its instance holds something else, which is partially implementation-dependent. You can see what it is on your system if you inspect the variable under the debugger. Quite apparently, it, in particular, stores such an important piece of data as the size of the array object.
—SA