web-dev-qa-db-fra.com

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 value, 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;
      }
}
113
peter

Dans l'interface, vous spécifiez la propriété:

public interface IResourcePolicy
{
   string Version { get; set; }
}

Dans la classe d'implémentation, vous devez l'implémenter:

public class ResourcePolicy : IResourcePolicy
{
   public string Version { get; set; }
}

Cela ressemble, 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.

En classe, vous les implémentez réellement. Le moyen le plus rapide de procéder consiste à utiliser cette syntaxe { get; set; }. Le compilateur créera un champ et générera l'implémentation de getter et de setter correspondante.

250
Stefan Steinegger

Tu veux dire comme cela?

class MyResourcePolicy : IResourcePolicy {
    private string version;

    public string Version {
        get {
            return this.version;
        }
        set {
            this.version = value;
        }
    }
}
21
J. Random Coder

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

13

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.
 */
1
Bernard Czaiński

Vous devez utiliser une classe abstraite pour initialiser une propriété. Vous ne pouvez pas initialiser dans l'interface.

0
Abdus Salam Azad
  • mais j’ai déjà attribué des valeurs telles que irp.WrmVersion = "10.4"; 

Le champ de réponse et d'initialisation de la version de J.Random Coder.


private string version = "10.4';
0
kazuk