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;
}
}
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.
Tu veux dire comme cela?
class MyResourcePolicy : IResourcePolicy {
private string version;
public string Version {
get {
return this.version;
}
set {
this.version = value;
}
}
}
Les interfaces ne peuvent contenir aucune implémentation (y compris les valeurs par défaut). Vous devez passer en classe abstraite.
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.
*/
Vous devez utiliser une classe abstraite pour initialiser une propriété. Vous ne pouvez pas initialiser dans l'interface.
Le champ de réponse et d'initialisation de la version de J.Random Coder.
private string version = "10.4';