Aracılığıyla paylaş


CA1040: Boş arabirimlerden kaçının

TürAdı

AvoidEmptyInterfaces

CheckId

CA1040

Kategori

Microsoft.Design

Bozan Değişiklik

Bozan

Sebep

Arabirim/arayüz herhangi bir üye bildirmez veya iki ya da daha fazla arabirim uygulamaz.

Kural Tanımı

Arayüzler bir davranış veya kullanım sözleşmesi sağlayan üyeleri tanımlar.Arabirim tarafından tanımlanan fonksiyonellik herhangi bir tür tarafından devralınabilir, türün kalıtım hiyerarşisinde nerede belirdiği önemsenmeksizin.Bir tür arabirimin üyeleri için uygulama sağlayarak bir arabirim uygulamalar.Boş bir arabirim herhangi bir üye tanımlamaz.Bu nedenle, uygulanabilir bir sözleşme tanımlamaz.

Eğer tasarımınızda uygulama bekleyen türlerden olan boş arabirimler içeriyorsa, muhtemelen bir işaretçi veya bir grup türleri tanımlamak için bir yol olarak bir arabirim kullanıyorsunuzdur.Eğer bu kimlikleme çalışma zamanında ortaya çıkacaksa, bunu doğru şekilde tamamlamanın yolu özel bir öznitelik kullanmaktır.Hedef türü tanımlamak için özniteliğin varlığını ya da yokluğunu veya özniteliğin özelliklerini kullanın.Eğer kimliklemenin derleme zamanında gerçekleşmesi gerekiyorsa boş bir arayüz kullanımı kabul edilebilir.

İhlallerin Düzeltilmesi

Arabirimi kaldırın veya ona üye ekleyin.Boş arabirim bir tür kümesini etiketlemek için kullanılıyorsa, arabirimi özel bir öznitelik ile değiştirin.

Uyarılar Ne Zaman Bastırılmalı

Derleme zamanında arabirim bir tür kümesini tanımlamak için kullanıldığında, bu kuraldan bir uyarıyı gizlemek güvenlidir.

Örnek

Aşağıdaki örnek, boş bir arabirim gösterir.

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    
    {    
    };
}