peut-être son idiot, mais je ne sais pas s'il y a une différence entre les types et les types de donnéesC#: Le type de données est-il identique au type?
int
est le type de données
class A{}
A est un type ou des données?
peut-être son idiot, mais je ne sais pas s'il y a une différence entre les types et les types de donnéesC#: Le type de données est-il identique au type?
int
est le type de données
class A{}
A est un type ou des données?
Il n'existe pas de "type de données" dans les langages .NET. Le «type de données» est souvent utilisé pour clarifier «type» pour désigner le type d'exécution réel de la variable plutôt qu'une notion plus abstraite du type de «valeur» présent.
int
est ce que l'on appelle un type de valeur . Tous les types primitifs (int
, double
, char
, etc.) sont des types de valeur, à l'exception de string
, qui est un type de référence (bien que, comme les types de valeur, il soit immuable).
Tout objet déclaré comme class
est un type de référence . Tout objet déclaré comme struct
est un type de valeur .
Même chose
En fait, dans .NET il y a des types de référence et les types de valeurs. Les types de valeurs sont enum
ou struct
et les types de référence sont class
.
int
est un alias à System.Int32 qui est un type struct et donc value, alors que dans votre cas A
est class, donc type de référence.
Même chose, il suffit de penser à Type. Pour être précis, A dans votre exemple est un type de référence.
A
est un type qui peut avoir des propriétés/variables membres qui peuvent être d'autres types ou types de données (int
, string
)
Mais alors, en termes de tout cadre est un type (référence ou valeur).
Des C# Spec Section 1,3
1.3 Types et les variables
Il existe deux types de types en C#: types de valeur et référence types. Les variables de types de valeur contiennent directement leurs données tandis que variables de types de référence stockent références à leurs données, ces dernières étant appelées objets. Avec la référence types, il est possible pour deux variables de référencer le même objet et donc possible pour les opérations sur une variable affectant l'objet référencé par l'autre variable.Avec types de valeur, les variables ont chacune leur propre copie des données, et il est pas possible pour les opérations sur un à affecter l'autre (sauf dans le cas des variables de paramètre ref et out).
C# 'types de valeur s sont divisées en types simples, les types ENUM , types struct, et types nullables et C#' types de référence s sont divisées en types de classe, les types d'interface , types de tableau et délégué types.
et int est un type de valeur qui est aussi un type simple et est aussi une classe a {} intégrale Signé
est un type de référence qui est un type de classe qui est définie par l'utilisateur.
C'est une différence importante à comprendre, mais "type de données" et "type" font référence au même concept. –
Les types de référence sont nullables et le type de valeur ne l'est pas. – Larry
@controlbreak: C# 3.0 a introduit des types de valeur NULL. Voir [ici] (http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx): "Les types nullables représentent des variables de type valeur auxquelles la valeur de null peut être affectée." –