Vous pouvez utiliser des génériques, ou dynamic
, selon la manière dont vous voulez utiliser Item
.
Pour utiliser l'approche des génériques, définir Item
en tant que tels:
class Item<T> {
public T Variable { get; set; }
}
Lorsque vous voulez un élément dont Variable
est un int, faites ceci:
var intItem = new Item<int>()
// you can set the Variable property to an int now!
intItem.Variable = -1;
Lorsque vous voulez un élément dont Variable
est un octet, faites ceci:
var byteItem = new Item<byte>()
// you can set the Variable property to a byte
byteItem.Variable = 10;
Et ainsi de suite et ainsi de suite
Une caractéristique de cette approche est que le type de Variable
de l'article ne peut pas être changé une fois que l'article est créé.Donc, ce n'est pas possible:
intItem.Variable = "Hello";
Si vous voulez changer son type à quelque chose d'autre sans créer un nouvel élément, vous devez utiliser une variable dynamique:
class Item {
public dynamic Variable {get; set;}
}
Vous pouvez maintenant faire quelque chose comme ça :
var myItem = new Item();
myItem.Variable = "Hello";
myItem.Variable = 10;
Ceci est fondamentalement la même que la définition Variable
que object
, mais il permet d'économiser votre temps d'incantation entre object
et la type désiré.
Et en ce qui concerne votre souci de vérifier si la valeur est hors plage, il peut être un peu difficile à vérifier si vous utilisez dynamic
. Mais je l'ai fait ce petit test et a constaté que lorsque la valeur débordait, il va juste enrouler autour de:
var item = new Item();
item.Variable = byte.MaxValue;
item.Variable++;
Console.WriteLine(item.Variable); // prints 0
ya un problème avec un type '' d'article? J'ai du mal à comprendre ce que vous demandez. –
jdphenix
S'il vous plaît montrer un exemple de code de la façon dont vous utiliseriez cette variable. – CodeCaster
vous devriez regarder dans les génériques – Jonesopolis