2012-03-16 3 views
-1

Поскольку в любом массиве массив является ссылочным типом, а отдельные элементы массива - это тип значения ... это также случай с массивом строк?В массиве строк C# отдельные элементы массива являются ссылочным типом или типом значения?

+1

.“; Элементы объекта' int [] 'являются типами значений (' int'), но элементы 'string []' являются ссылочными типами ('string') –

ответ

2

System.String является ссылочным типом.

+0

отдельными элементами в массиве ... например, например, в string [] str = {"the", "hero"} и герой являются ссылочными или значениями? –

+0

@SanaZehra, они являются тем, что является базовым типом элемента. В массиве 'int' тип элемента представляет собой тип значения В массиве, например 'string', они являются ссылочными типами. –

1

Массивы - not типы значений. И нет причин, по которым их содержимое должно быть типом значений, если, конечно, они не являются, по сути, типами значений. (например, int).

int[] intArray; // intArray is a reference type. It holds ints, a value type 
string[] stringArray; // stringArray is a reference type. It holds strings, a reference type 

EDIT Специфическая цитата из указанной страницы о типе массива:

типов массивов являются ссылочными типами, производными от абстрактного базового типа Array. Поскольку этот тип реализует IEnumerable и IEnumerable, вы можете использовать foreach-итерацию во всех массивах на C#.

+0

поэтому массив объектов в основном ... содержит объекты (ссылки на объекты), следовательно, массив объектов и содержимое такого массива являются ссылочными типами справа ??? ... –

+0

@SanaZehra, массив является ссылочным типом, периодом. Это не меняется. Что * * * изменяется, является ли тип элемента (то, что содержит массив), это ссылочный тип или тип значения. Это * полностью * зависит от типа, о котором идет речь. Следовательно, элементы массива 'int' являются типами значений, в то время как элементы массива' string' являются ссылочными типами. –

2

Элементы в массиве являются значениями, но они могут быть либо типом значения, либо ссылочным типом.

Для массива типов значений само значение сохраняется в массиве.

Для массива ссылочных типов ссылки на объекты хранятся в массиве.

Итак, массив строк на самом деле представляет собой массив ссылок на строки.

0

отдельные элементы массива являются тип значения

Неправильный. Тип базового элемента массива может быть либо ценным, либо ссылочным.

0

string (C# Reference) - Это ссылочный тип и в случае массива.
Тип строки представляет собой последовательность из нуля или более символов Unicode. string - это псевдоним для String в .NET Framework.

оператор [] может быть использована только для чтения доступа к отдельным символам строки:

string str = "test"; 
char x = str[2]; // x = 's'; 

строковые литералы имеют тип строки и могут быть записаны в двух формах, цитируются и @ -quoted. Цитируемые строковые литералы заключаются в двойные кавычки (") и отдельные элементы массива типа значения„- это ошибка

проверки документации ссылка MSDN для получения подробной информации об этом

Смежные вопросы