Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
İlgili Konular
| 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. |