2010-09-09 3 views

ответ

2

Нет такой вещи, как «тип данных» на любом языке .NET. «Тип данных» часто используется для уточнения «типа», чтобы ссылаться на фактический тип среды выполнения, а не на более абстрактное представление о том, что такое «вид» значения.

int - это так называемый тип значения. Все примитивные типы (int, double, char и т. Д.) Являются типами значений, за исключением string, который является ссылочным типом (хотя, как и типы значений, он неизменен).

Любой объект, объявленный как class, является ссылочным типом. Любой объект, объявленный как struct, является значением типа.

7

На самом деле в .NET есть ссылочные типы и типы значений. Типы значений: enum или struct, а ссылочные типы - class.

int является псевдонимом System.Int32 который является структурой и таким образом тип значения, в то время как в вашем случае A является классом, поэтому ссылочный тип.

+4

Это важное различие для понимания, но «тип данных» и «тип» относятся к одной и той же концепции. –

+1

Типы ссылок имеют значение NULL, а тип значения - нет. – Larry

+1

@controlbreak: в C# 3.0 введены типы значений с нулевым значением. См. [Здесь] (http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx): «Nullable types представляют переменные типа значения, которым может быть присвоено значение null». –

0

То же самое, просто подумайте об этом как о типе. Чтобы быть конкретным, A в вашем примере является ссылочным типом.

0

A является типом, который может иметь переменные свойства/членов, которые могут быть другими типов или типов данных (int, string)

Но тогда, с точкой зрения рамочных всего этот тип (ссылка или значение).

0

От C# Spec Раздел 1,3

1.3 Типы и переменные

Есть два вида типов в C#: типы значений и ссылки типы. Переменные типов значений непосредственно содержат свои данные, тогда как переменные ссылочных типов хранят ссылки на их данные, последние известны как объекты. С ссылочными типами возможно, что две переменные ссылаются на один и тот же объект и, таким образом, могут быть использованы для операций с одной переменной, которая влияет на объект , на который ссылается другая переменная.С типами значений переменные имеют свою собственную копию данных, и это невозможно для операций с одним на влиять на другие (за исключением случая переменных параметров ref и out).

С # типов значений далее разделены на простых типов, перечисления типов, типов структуры, и обнуляемых типов и С # ссылочных типов далее разделены в типов классов, типы интерфейсов , типы массивов и делегат виды.

и INT является типом значения, который также является простым типом, а также является неотъемлемой Подпись

класс а {} является ссылочным типом, который является типом класса, который определяется пользователем.

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