Erreur lors de l'interface de mise en œuvre: classe ne met pas en œuvre membres d'interface
-
27-10-2019 - |
Question
Je suis en train de la IUpdatable outils.
Erreur 1 'WebRole1.InfoManager' ne pas mettre en oeuvre un membre d'interface 'System.Data.Services.IUpdatable.ClearChanges ()' Toutes les erreurs que je reçois disent que je ne suis pas tous les membres de la mise en œuvre interface, mais je met en œuvre certains ne sont pas tous bien sûr. Je ne l'ai pas mis le code trou Je espère que vous pouvez comprendre.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Services;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.ServiceRuntime;
using Microsoft.WindowsAzure.StorageClient;
namespace WebRole1
{
public class InfoManager : IUpdatable
{
private TableServiceContext context;
// To Generate DataConnectionString and svcClient
private TableServiceContext GetContext()
{
//Implemented code
}
public CommentManager()
{
context = GetContext();
}
// To get my table infos
public IQueryable<Info> Infos
{
get
{
return context.CreateQuery<Info>("Infos").AsTableServiceQuery();
}
}
// Creating the resource and cheking the compatibility of the type and do an add Object
public Object CreateResource(string containerName, string fullTypeName)
{
//Implemented Code
}
// Return the instance of the resource represented by the object
public Object ResolveResource(Object resource)
{
return resource;
}
public void SaveChanges()
{
context.SaveChangesWithRetries();
}
public void setValue(Object targetResource, string propertyName, Object propertyValue)
{
//Implemented Code
}
}
}
La solution
Il est une interface, vous devez donc mettre en œuvre tous les membres -. Si vous voulez, ou non
Cette erreur ne disparaîtra pas jusqu'à ce que vous implémentez l'interface dans son intégralité. Vous pouvez faire ce que vous voulez dans le cadre de la méthode que vous implémentez, disons même élever un NotImplementedException
par exemple -. Mais votre implémentation de sorte que le compilateur est heureux
Je ne l'ignorance de cautionner (vous devriez apprendre encore le Hows et pourquoi ) mais je vais proposer une pointe qui peut aider dans votre apprentissage et, si rien d'autre , productivité future:
A partir de Visual Studio, lorsque vous avez le fichier code de classe ouverte qui est d'implémenter l'interface, vous pouvez avoir VS cracher le code pour vous ...
class MyClass : IMyInterface // <- hover mouse and click the drop down that appears
Dans le menu déroulant, vous devriez voir l'option Implement Interface 'IMyInterface'
, cliquez dessus et le tour est joué! Il génère automatiquement les corps de méthode squelettique pour vous.
Autres conseils
Je ne comprends pas ce que la question est. Si vous implémentez une interface, vous devez mettre en œuvre toutes les méthodes dans cette interface. Sinon, le compilateur donnera une erreur.
Je pense que l'erreur est claire:. Vous n'êtes pas implémentez tous les membres de l'interface, qui est nécessaire bien sûr