Aracılığıyla paylaş


Arabirimler (Visual Basic)

Arabirimler sınıfların uygulayabileceği özellikleri, yöntemleri ve olayları tanımlar. Arabirimler, özellikleri yakından ilişkili özellikler, yöntemler ve olaylardan oluşan küçük gruplar olarak tanımlamanıza olanak sağlar; Bu, mevcut kodu tehlikeye atmadan arabirimleriniz için gelişmiş uygulamalar geliştirebileceğinizden uyumluluk sorunlarını azaltır. Ek arabirimler ve uygulamalar geliştirerek istediğiniz zaman yeni özellikler ekleyebilirsiniz.

Sınıf devralma yerine arabirimleri kullanmak istemenin birkaç nedeni daha vardır:

  • Arabirimler, uygulamalarınızın belirli işlevleri sağlamak için birçok büyük olasılıkla ilişkisiz nesne türü gerektirdiği durumlar için daha uygundur.

  • Birden çok arabirim uygulayabilen tek bir uygulama tanımlayabildiğiniz için arabirimler temel sınıflara göre daha esnektir.

  • Arabirimler, uygulamayı temel sınıftan devralmak zorunda olmadığınız durumlarda daha iyidir.

  • Sınıf devralmayı kullanamadığınızda arabirimler kullanışlıdır. Örneğin, yapılar sınıflardan devralamaz, ancak arabirimleri uygulayabilir.

Arabirimleri Bildirme

Arabirim tanımları Interface ve End Interface deyimleriyle çevrilir. deyiminin Interface ardından, bir veya daha fazla devralınan arabirimi listeleyen isteğe bağlı Inherits bir deyim ekleyebilirsiniz. Inherits Deyimler, bildirimdeki diğer tüm deyimlerden önce ve yorumlardan sonra olmalıdır. Arabirim tanımındaki kalan deyimler Event, Sub, Function, Property, Interface, Class, Structure ve Enum deyimleri olmalıdır. Arabirimler, End Sub veya End Property gibi uygulama koduyla ilişkilendirilmiş herhangi bir uygulama kodu veya deyimi içeremez.

Bir ad alanında, arabirim deyimleri varsayılan olarak Friend'dır, ancak açıkça Public veya Friend olarak da bildirilebilir. Sınıflar, modüller, arabirimler ve yapılar içinde tanımlanan arabirimler varsayılan olarak Public'dır, ancak açıkça Public, Friend, Protected veya Private olarak da bildirilebilir.

Uyarı

anahtar Shadows sözcüğü tüm arabirim üyelerine uygulanabilir. anahtar Overloads sözcüğü, bir arabirim tanımında bildirilen Sub, Function ve Property deyimlerine uygulanabilir. Ayrıca, Property ifadelerinde Default, ReadOnly, veya WriteOnly değiştiricileri olabilir. Hiçbir diğer değiştirici—Public, Private, Friend, Protected, Shared, Overrides, MustOverride veya Overridable—izinli değildir. Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri.

Örneğin, aşağıdaki kod bir işlev, bir özellik ve bir olay içeren bir arabirim tanımlar.

Interface IAsset
    Event ComittedChange(ByVal Success As Boolean)
    Property Division() As String
    Function GetID() As Integer
End Interface

Arabirimleri Uygulama

Visual Basic ayrılmış sözcüğü Implements iki şekilde kullanılır. deyimi, Implements bir sınıfın veya yapının bir arabirim uyguladığını gösterir. anahtar Implements sözcüğü, bir sınıf üyesinin veya yapı üyesinin belirli bir arabirim üyesi uyguladığını gösterir.

Implements Bildirimi

Bir sınıf veya yapı bir veya daha fazla arabirim uygularsa, Implements veya Class deyiminden hemen sonra Structure deyimini içermelidir. deyimi, Implements bir sınıf tarafından uygulanacak arabirimlerin virgülle ayrılmış bir listesini gerektirir. Sınıfın veya yapının tüm arabirim üyelerini Implements anahtar sözcüğünü kullanarak uygulaması gerekir.

Anahtar Sözcük Uygular

anahtar Implements sözcüğü, uygulanacak arabirim üyelerinin virgülle ayrılmış bir listesini gerektirir. Genel olarak, yalnızca tek bir arabirim üyesi belirtilir, ancak birden çok üye belirtebilirsiniz. Arabirim üyesinin belirtimi, sınıfı içindeki bir implements deyiminde belirtilmesi gereken arabirim adından oluşur; nokta; ve uygulanacak üye işlevinin, özelliğinin veya olayının adı. Visual Basic'in önceki sürümlerinde kullanılan InterfaceName_MethodName kuralıyla sınırlı olmaksızın, bir arabirim üyesini uygulayan herhangi bir üyenin adı, herhangi bir yasal tanımlayıcı kullanabilir.

Örneğin, aşağıdaki kod bir arabirimin yöntemini uygulayan adlı Sub1 bir alt yordam bildirmeyi gösterir:

Class Class1
    Implements interfaceclass.interface2

    Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
    End Sub
End Class

Uygulayan üyenin parametre türleri ve dönüş türleri, arabirimdeki arabirim özelliği veya üye bildirimiyle eşleşmelidir. Bir arabirimin öğesini uygulamanın en yaygın yolu, önceki örnekte gösterildiği gibi arabirimle aynı ada sahip bir üyeye sahip olmaktır.

Bir arabirim yönteminin uygulanmasını bildirmek için, Overloads, Overrides, Overridable, Public, Private, Protected, Friend, Protected Friend, MustOverride, Default, ve Static dahil olmak üzere, örnek yöntem bildirimi üzerinde yasal olan tüm öznitelikleri kullanabilirsiniz. Shared Özniteliği, örnek yöntemi yerine bir sınıf tanımladığından yasal değildir.

kullanarak Implements, aşağıdaki örnekte olduğu gibi bir arabirimde tanımlanan birden çok yöntemi uygulayan tek bir yöntem de yazabilirsiniz:

Class Class2
    Implements I1, I2

    Protected Sub M1() Implements I1.M1, I1.M2, I2.M3, I2.M4
    End Sub
End Class

Arayüz üyesinin uygulanması için özel bir üye kullanabilirsiniz. Özel üye bir arabirimin bir üyesini uyguladığında, sınıfı için nesne değişkenlerinde doğrudan kullanılamasa bile bu üye arabirim yoluyla kullanılabilir hale gelir.

Arabirim Uygulama Örnekleri

Arabirim uygulayan sınıfların tüm özelliklerini, yöntemlerini ve olaylarını uygulaması gerekir.

Aşağıdaki örnek iki arabirimi tanımlar. İkinci arabirim olan Interface2, ek bir özellik ve yöntemi devralır Interface1 ve tanımlar.

Interface Interface1
    Sub sub1(ByVal i As Integer)
End Interface

' Demonstrates interface inheritance.
Interface Interface2
    Inherits Interface1
    Sub M1(ByVal y As Integer)
    ReadOnly Property Num() As Integer
End Interface

Sonraki örnek, önceki örnekte tanımlanan arabirimini uygular Interface1:

Public Class ImplementationClass1
    Implements Interface1
    Sub Sub1(ByVal i As Integer) Implements Interface1.sub1
        ' Insert code here to implement this method.
    End Sub
End Class

Son örnek, Interface2 öğesinden devralınan bir yöntemi de içerecek şekilde uygular Interface1:

Public Class ImplementationClass2
    Implements Interface2
    Dim INum As Integer = 0
    Sub sub1(ByVal i As Integer) Implements Interface2.sub1
        ' Insert code here that implements this method.
    End Sub
    Sub M1(ByVal x As Integer) Implements Interface2.M1
        ' Insert code here to implement this method.
    End Sub

    ReadOnly Property Num() As Integer Implements Interface2.Num
        Get
            Num = INum
        End Get
    End Property
End Class

Salt okunur bir özelliği, salt yazılır okunur bir özellikle uygulayabilirsiniz (başka bir deyişle, bunu uygulayan sınıfta salt okunur olarak bildirmeniz gerekmez). Bir arayüz uygulamak, arayüzün bildirdiği üyelerin en azından uygulanacağını garanti eder, ancak özelliğinizi yazılabilir yapmak gibi daha fazla işlevsellik sunabilirsiniz.

Başlık Açıklama
İzlenecek yol: Arabirim Oluşturma ve Uygulama Kendi arabiriminizi tanımlama ve uygulama sürecinde size yol gösteren ayrıntılı bir yordam sağlar.
Genel Arabirimlerde Varyans Genel arabirimlerde kovaryansı ve değişken karşıtılığı açıklar ve .NET Framework'teki değişken genel arabirimlerin listesini sağlar.