может быть, его глупо, но я не уверен, если есть разница между типами и типами данныхC#: Является ли тип данных таким же, как тип?
int
является тип данных
class A{}
А тип или тип данных?
может быть, его глупо, но я не уверен, если есть разница между типами и типами данныхC#: Является ли тип данных таким же, как тип?
int
является тип данных
class A{}
А тип или тип данных?
Нет такой вещи, как «тип данных» на любом языке .NET. «Тип данных» часто используется для уточнения «типа», чтобы ссылаться на фактический тип среды выполнения, а не на более абстрактное представление о том, что такое «вид» значения.
int
- это так называемый тип значения. Все примитивные типы (int
, double
, char
и т. Д.) Являются типами значений, за исключением string
, который является ссылочным типом (хотя, как и типы значений, он неизменен).
Любой объект, объявленный как class
, является ссылочным типом. Любой объект, объявленный как struct
, является значением типа.
То же самое
На самом деле в .NET есть ссылочные типы и типы значений. Типы значений: enum
или struct
, а ссылочные типы - class
.
int
является псевдонимом System.Int32 который является структурой и таким образом тип значения, в то время как в вашем случае A
является классом, поэтому ссылочный тип.
То же самое, просто подумайте об этом как о типе. Чтобы быть конкретным, A в вашем примере является ссылочным типом.
A
является типом, который может иметь переменные свойства/членов, которые могут быть другими типов или типов данных (int
, string
)
Но тогда, с точкой зрения рамочных всего этот тип (ссылка или значение).
От C# Spec Раздел 1,3
1.3 Типы и переменные
Есть два вида типов в C#: типы значений и ссылки типы. Переменные типов значений непосредственно содержат свои данные, тогда как переменные ссылочных типов хранят ссылки на их данные, последние известны как объекты. С ссылочными типами возможно, что две переменные ссылаются на один и тот же объект и, таким образом, могут быть использованы для операций с одной переменной, которая влияет на объект , на который ссылается другая переменная.С типами значений переменные имеют свою собственную копию данных, и это невозможно для операций с одним на влиять на другие (за исключением случая переменных параметров ref и out).
С # типов значений далее разделены на простых типов, перечисления типов, типов структуры, и обнуляемых типов и С # ссылочных типов далее разделены в типов классов, типы интерфейсов , типы массивов и делегат виды.
и INT является типом значения, который также является простым типом, а также является неотъемлемой Подпись
класс а {} является ссылочным типом, который является типом класса, который определяется пользователем.
Это важное различие для понимания, но «тип данных» и «тип» относятся к одной и той же концепции. –
Типы ссылок имеют значение NULL, а тип значения - нет. – Larry
@controlbreak: в C# 3.0 введены типы значений с нулевым значением. См. [Здесь] (http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx): «Nullable types представляют переменные типа значения, которым может быть присвоено значение null». –