web-dev-qa-db-fra.com

Que signifie fortement typé dans le framework .NET?

Ce matin, je parcourais un livre où j'ai trouvé un paragraphe comme indiqué ci-dessous:

Chaque champ de données d'une table est un membre de données fortement typé, entièrement conforme au système de type commun de .NET.

Est-ce que les lignes ci-dessus signifient "que les objets écrits dans différentes langues peuvent interagir les uns avec les autres comme"

Et si cela signifie les lignes ci-dessus, que signifie exactement la ligne ci-dessus en disant différentes langues peuvent interagir les unes avec les autres comme

J'essaie de travailler avec un exemple mais sans succès jusqu'à présent.

Ou est-ce quelque chose qui me manque et que je dois savoir. S'il vous plaît, aidez-moi à comprendre.

Merci d'avance

21
Tony

Par exemple, vous ne pouvez pas multiplier ou diviser deux types différents, c'est-à-dire String vs Integer

var answer = 1 * "1"; // you cannot do this

Vous devez le lancer explicitement, cela est connu comme fortement typé

où comme si vous voyez en php

$x = "3" * 1; // is correct in php

Ici, vous n'avez donc pas besoin de le lancer explicitement.

21
FosterZ

Lorsque nous disons que quelque chose est fortement typé, nous voulons dire que le type de l'objet est connu et disponible.

Disons que j'ai une fonction comme la suite

public int Add(int a, int b){
 return a+b;
}

Nous pouvons appeler cette fonction comme

int result = Add(5,4);

Mais on ne peut pas faire comme suivre

int result = Add(5.2,4.5); // We will get here compilation error.

C # (et C++ et de nombreux autres langages) est fortement typé car le compilateur détectera et marquera ces erreurs au moment de la compilation.

Voir ici

16
Atish Dipongkor - MVP

Non. Cela signifie que 1 et "1" (ou tout autre nombre et chaîne d'ailleurs) sont des valeurs différentes qui ne peuvent pas être échangées nonchalamment dans les expressions.

"entièrement compatible avec le système de type commun de .NET" signifie que les types de données sont utilisables dans n'importe quel langage .NET. Donc, si vous avez créé une classe qui expose une propriété en c # qui est conforme CTS, cette classe peut être consommée à partir de VB.net, par exemple.

"Chaque champ de données dans une table est un membre de données fortement typé" signifie que vous pouvez vous fier au type de la valeur dans la table et que vous devrez le caster en un autre type si cela était nécessaire. Vous ne pouvez pas faire de casting implicite.

3
user381624

Cela signifie que s'il existe deux variables de types différents, vous devez les transtyper pour rendre une opération exécutable.

Sinon, cela lèvera une exception.

0
Kishore Kumar