ca1040: تجنب الواجهات فارغ
TypeName |
AvoidEmptyInterfaces |
CheckId |
ca1040 |
Category |
Microsoft.تصميم |
تعطيل تغيير |
فصل |
السبب
لا تقوم بتعريف أي الأعضاء الواجهة أو تطبيق أو أكثر البعض الواجهات.
وصف القاعدة
تعريف واجهات أعضاء توفر سلوك أو استخدام اتفاق. وظائف الموصوفة بواسطة يمكن أن تستخدم الواجهة بواسطة أي نوع، بغض النظر عن مكان ظهور النوع في هيكلي للوراثة. يطبق نوع واجهة بتوفير تطبيقات لأعضاء الخاص بالواجهة. لا واجهة فارغ بتعريف أي الأعضاء. ولهذا، لا تعريف عقد التي يمكن تطبيق.
إذا كان تصميمك يتضمن واجهات الفارغ التي يتم توقع أنواع إلى تنفيذ، فمن المحتمل أن استخدام واجهة كعلامة أو طريقة لتعريف مجموعة من أنواع. إذا كان هذا التعريف يحدث في وقت التشغيل، بالطريقة الصحيحة إلى القيام بذلك هو إلى استخدام سمة cusإلىm. استخدم وجود أو غياب السمة أو خصائص السمة، إلى التعرف على أنواع الهدف. إذا كان يجب أن يكون التعريف في وقت الترجمة، ثم استخدام واجهة فارغ هو مقبولة.
كيف إلى الإصلاح انتهاكات
قم بإزالة الواجهة أو إضافة الأعضاء إلى عليه. إذا كانت واجهة فارغ هو المستخدمة لتسمية التعيين من أنواع، استبدل الواجهة ذات سمة مخصصة.
عند إلى منع التحذيرات
هو آمن لمنع ظهور تحذير من القيم بالموضع هو قاعدة إذا الواجهة هو يستخدم لتعريف التعيين من أنواع وقت التحويل البرمجي.
مثال
يظهر المثال التالي واجهة فارغ.
Imports System
Namespace Samples
Public Interface IBadInterface ' Violates rule
End Interface
End Namespace
using System;
namespace DesignLibrary
{
public interface IBadInterface // Violates rule
{
}
}
#include "stdafx.h"
using namespace System;
namespace Samples
{
// Violates this rule
public interface class IEmptyInterface
{
};
}