170 votes

Comment implémenter une propriété dans une interface

J'ai l'interface IResourcePolicy contenant la propriété Version. Je dois implémenter cette propriété qui contient de la valeur, le code écrit dans les 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;
      }
}

27voto

J. Random Coder Points 686

Vous voulez dire comme ça ?

class MyResourcePolicy : IResourcePolicy {
    private string version;

    public string Version {
        get {
            return this.version;
        }
        set {
            this.version = value;
        }
    }
}

19voto

Les interfaces ne peuvent contenir aucune implémentation (y compris les valeurs par défaut). Vous devez passer à la classe abstraite.

6voto

Exemple simple d'utilisation d'une propriété dans une interface :

using System;
interface IName
{
    string Name { get; set; }
}

class Employee : IName
{
    public string Name { get; set; }
}

class Company : IName
{
    private string _company { get; set; }
    public string Name
    {
        get
        {
            return _company;
        }
        set
        {
            _company = value;
        }   
    }
}

class Client
{
    static void Main(string[] args)
    {
        IName e = new Employee();
        e.Name = "Tim Bridges";

        IName c = new Company();
        c.Name = "Inforsoft";

        Console.WriteLine("{0} from {1}.", e.Name, c.Name);
        Console.ReadKey();
    }
}
/*output:
 Tim Bridges from Inforsoft.
 */

0voto

Erik Lundmark Points 41
  • mais j'ai déjà attribué des valeurs telles que irp.WrmVersion = "10.4" ;

Réponse de J.Random Coder et initialiser le champ de version.


private string version = "10.4';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X