La variante de Type en C#
VBA (et je suppose VB) est une Variante du type qui, je crois, prend plus de mémoire, mais couvre les différents types de données.
Est-il un équivalent en c# ?
Dans un formulaire windows dire que j'ai eu la suivante, comment puis-je modifier le type de z pour qu'il fonctionne ok
private void uxConvertButton_Click(object sender, EventArgs e)
{
int x = 10;
byte j = (byte)x;
upDateRTB(j);
long q = (long)x;
upDateRTB(q);
string m = x.ToString();
upDateRTB(m);
}
void upDateRTB(long z) {
MessageBox.Show(this,"amount; "+z);
}
Vous devez vous connecter pour publier un commentaire.
Si vous parlez "variante" type en c#, jetez un oeil à
dynamic
type dans .net 4.0Mais pour la résolution de votre tâche, il suffirait d'utiliser
z.ToString()
dans votreMessageBox.Show
Un paramètre de l'objet serait de tout accepter, mais si vous souhaitez garder les variables fortement typés (et éviter de boxe dans le processus), vous pouvez utiliser des génériques:
Les appels de méthode pourrait rester exactement la même, car le compilateur ne peut résoudre le type générique basé sur le paramètre donné.
generics
:<T>(T z)
n'est pas quelque chose que j'ai trouver encoreLa dynamique de mots clés ou le type d'objet peut vous donner la variante de comportement que vous voulez, mais:
Dans ce cas, je changerais la fonction:
Parce que c'est la méthode de besoins.
"amount; "+z
implicitement appelle la méthode ToString surz
.Ainsi, vous pouvez utiliser le type de
object
:Vous pouvez également utiliser la dynamique, mais je ne vois pas l'intérêt:
dynamic
suis plus dessus? est-ce la raison pour laquelle vous choisissezobject
à la place?