J'ai une interface IResourcePolicy
contenant la propriété Version
. Je dois implémenter cette propriété qui contient de la valeur, le code écrit dans d'autres pages:
IResourcePolicy irp(instantiated interface)
irp.WrmVersion = "10.4";
Comment puis-je implémenter la propriété version
?
public interface IResourcePolicy
{
string Version
{
get;
set;
}
}
Réponses:
Dans l'interface, vous spécifiez la propriété:
Dans la classe d'implémentation, vous devez l'implémenter:
Cela semble similaire, mais c'est quelque chose de complètement différent. Dans l'interface, il n'y a pas de code. Vous spécifiez simplement qu'il existe une propriété avec un getter et un setter, quoi qu'ils fassent.
Dans la classe, vous les implémentez réellement. Le moyen le plus court d'y parvenir est d'utiliser cette
{ get; set; }
syntaxe. Le compilateur créera un champ et générera l'implémentation du getter et du setter pour celui-ci.la source
Version
c'est public dans la classe? Ahh, je vois mon problème: si vous implémentez l'interface explicitement (par exempleIResourcePolicy.Version
, vous ne pouvez pas définir si elle est publique.Tu veux dire comme cela?
la source
Les interfaces ne peuvent contenir aucune implémentation (y compris les valeurs par défaut). Vous devez passer à la classe abstraite.
la source
L'exemple simple d'utilisation d'une propriété dans une interface:
la source
Réponse de J.Random Coder et champ d'initialisation de la version.
la source
Vous devez utiliser une classe abstraite pour initialiser une propriété. Vous ne pouvez pas vous lancer dans Inteface.
la source