خطأ عند تنفيذ واجهة:الطبقة لا تنفذ أعضاء واجهة
-
27-10-2019 - |
سؤال
أنا أحاول أن تنفذ إوبداتابل.
خطأ 1 ' ويبرول1.إنفوماناجر 'لا تنفذ واجهة عضو' النظام.البيانات.الخدمات.قابل للتحديث.كليرتشانجيس ()' جميع الأخطاء التي أحصل عليها تقول إنني لا أقوم بتنفيذ جميع أعضاء الواجهة ، لكنني أقوم بتنفيذ بعض ليس كل شيء بالطبع.أنا لم أضع رمز حفرة آمل أن تتمكن من فهم.
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
}
}
}
المحلول
إنها واجهة ، لذلك يجب عليك تنفيذ جميع الأعضاء-سواء كنت تريد ذلك أم لا.
لن يختفي هذا الخطأ حتى تقوم بتنفيذ الواجهة بالكامل.يمكنك أن تفعل ما تريد في نطاق الطريقة التي تنفذ ، ويقول حتى رفع NotImplementedException
على سبيل المثال - ولكن هذا هو التنفيذ الخاص بك حتى يكون المترجم سعيدا.
لن أتغاضى عن الجهل (لا يزال يتعين عليك تعلم هاوس و لماذا) لكنني سأقدم نصيحة قد تساعد في تعلمك ، وإذا لم يكن هناك شيء آخر ، الإنتاجية المستقبلية:
من داخل فيسوال ستوديو ، عندما يكون لديك ملف رمز الفئة مفتوحة وهو لتنفيذ واجهة ثم هل يمكن أن يكون فس يبصقون رمز بالنسبة لك...
class MyClass : IMyInterface // <- hover mouse and click the drop down that appears
من القائمة المنسدلة يجب أن ترى الخيار Implement Interface 'IMyInterface'
, ، انقر فوقه وفويل!!وسوف تولد تلقائيا الهيئات طريقة الهيكل العظمي بالنسبة لك.
نصائح أخرى
لا أفهم ما هو السؤال.إذا قمت بتنفيذ واجهة ، فيجب عليك تنفيذ جميع الطرق في تلك الواجهة.وإلا فإن المترجم سوف يعطي خطأ.
أعتقد أن الخطأ واضح: أنت لا تقوم بتنفيذ جميع أعضاء الواجهة ، وهو أمر مطلوب بالطبع.