2010-09-09 7 views

Répondre

2

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 .

4

Même chose

7

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.

+4

C'est une différence importante à comprendre, mais "type de données" et "type" font référence au même concept. –

+1

Les types de référence sont nullables et le type de valeur ne l'est pas. – Larry

+1

@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." –

0

Même chose, il suffit de penser à Type. Pour être précis, A dans votre exemple est un type de référence.

0

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).

0

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.

Questions connexes