Arabirimler (Visual Basic)
Arabirimler , sınıfların uygulayamayacağı özellikleri, yöntemleri ve olayları tanımlar. Arabirimler, özellikleri, daha yakından ilgili özellikler, Yöntemler ve olaylar gibi küçük gruplar olarak tanımlamanızı sağlar. Bu, mevcut kodu tehlikeye atamadan arabirimlerinizde gelişmiş uygulamalar geliştirebileceğiniz için uyumluluk sorunlarını azaltır. Ek arabirimler ve uygulamalar geliştirirken dilediğiniz zaman yeni özellikler ekleyebilirsiniz.
Sınıf devralma yerine arabirimleri kullanmak isteyebileceğiniz birkaç başka neden vardır:
Arabirimler, uygulamalarınızın belirli işlevleri sağlamak için çok büyük olasılıkla ilişkisiz nesne türleri gerektirdiği durumlara daha uygundur.
Birden çok arabirim uygulayabildiğinden tek bir uygulama tanımlayabilmeniz için arabirimler temel sınıflardan daha esnektir.
Arabirimler, bir temel sınıftan uygulama devralmayı gerektirmeyen durumlarda daha iyidir.
Sınıf devralmayı kullanabilmeniz için arabirimler faydalıdır. Örneğin, yapılar sınıflardan kalýtýmla bağlanamaz, ancak arabirimleri uygulayabilirler.
Arabirimleri bildirme
Arabirim tanımları ve deyimleri içine alınır Interface End Interface . InterfaceDeyimden sonra, Inherits bir veya daha fazla devralınmış arabirimi listeleyen isteğe bağlı bir ifade ekleyebilirsiniz. InheritsDeyimler, açıklama haricinde bildirimde bulunan tüm diğer deyimlerden önce gelmelidir. Arabirim tanımındaki kalan deyimler,,,,, Event , Sub Function Property Interface Class Structure ve Enum deyimleri olmalıdır. Arabirimler, veya gibi uygulama kodu ile ilişkili herhangi bir uygulama kodu veya deyim içeremez End Sub End Property .
Bir ad alanında, arabirim deyimleri Friend Varsayılan olarak, ancak veya olarak açıkça bildirilebilecek Public Friend . Sınıflar, modüller, arabirimler ve yapılar içinde tanımlanan arabirimler varsayılan olarak,,, Public veya olarak açıkça bildirilemez Public Friend Protected Private .
Not
ShadowsAnahtar sözcüğü tüm arabirim üyelerine uygulanabilir. OverloadsAnahtar sözcüğü Sub , Function Property bir arabirim tanımında belirtilen, ve ifadelerine uygulanabilir. Ayrıca, Property deyimler Default ,, ReadOnly veya değiştiricilere sahip olabilir WriteOnly . Diğer değiştiricilerin hiçbirine — Public , Private ,, Friend , Protected , Shared Overrides , MustOverride , veya Overridable — hiçbirine izin verilmez. Daha fazla bilgi için bkz. bildirim bağlamları ve varsayılan erişim düzeyleri.
Örneğin, aşağıdaki kod bir arabirimi bir işlev, bir özellik ve bir olay ile 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ük Implements iki şekilde kullanılır. Implementsİfade bir sınıfın veya yapının bir arabirim uyguladığını belirtir. ImplementsAnahtar sözcüğü, bir sınıf üyesi veya yapı üyesinin belirli bir arabirim üyesini uyguladığını belirtir.
Implements Deyimi
Bir sınıf veya yapı bir veya daha fazla arabirim uygularsa, Implements Class veya deyimden hemen sonra ifadesini içermesi gerekir Structure . Implementsİfade, bir sınıf tarafından uygulanacak arabirimlerin virgülle ayrılmış bir listesini gerektirir. Sınıf veya yapı, anahtar sözcüğünü kullanarak tüm arabirim üyelerini uygulamalıdır Implements .
Implements anahtar sözcüğü
ImplementsAnahtar sözcüğü, uygulanacak arabirim üyeleri için virgülle ayrılmış bir liste gerektirir. Genellikle yalnızca tek bir arabirim üyesi belirtilir, ancak birden çok üye belirtebilirsiniz. Bir arabirim üyesinin belirtimi, sınıf içindeki bir Implements ifadesinde belirtilmesi gereken arabirim adından oluşur; nokta; ve uygulanacak üye işlevin, özelliğin veya etkinliğin adı. Bir arabirim üyesini uygulayan üyenin adı herhangi bir yasal tanımlayıcıyı kullanabilir ve InterfaceName_MethodName Visual Basic önceki sürümlerinde kullanılan kurala sınırlı değildir.
Örneğin, aşağıdaki kod, bir arabirimin yöntemini uygulayan adlı bir alt yordamın nasıl bildirilemeyeceğini göstermektedir Sub1 :
Class Class1
Implements interfaceclass.interface2
Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
End Sub
End Class
Uygulama üyesinin parametre türleri ve dönüş türleri, arabirimdeki arabirim özelliği veya üye bildirimiyle eşleşmelidir. Bir arabirimin bir öğesini uygulamak için en yaygın yol, önceki örnekte gösterildiği gibi, arabirimiyle aynı ada sahip bir üyeye sahiptir.
Bir arabirim yönteminin uygulamasını bildirmek için,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Overloads Overrides Overridable Public Private Protected Friend Protected Friend MustOverride Default ve Static gibi örnek yöntemi SharedÖznitelik bir örnek yöntemi yerine bir sınıf tanımladığından geçerli 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
Bir arabirim üyesini uygulamak için özel üye kullanabilirsiniz. Bir özel üye bir arabirimin üyesini uygularsa, bu üye, sınıfın nesne değişkenlerinde doğrudan kullanılamaz olmasına rağmen arabirim tarafından 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, Interface2 Interface1 bir ek özellik ve yöntemi devralır 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 Interface1 , önceki örnekte tanımlanan arabirimi uygular:
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öntem dahil olmak üzere şunları 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 bir ReadWrite özelliği ile uygulayabilirsiniz (yani, uygulama sınıfında ReadOnly olarak bildirmeniz gerekmez). Bir arabirimi uygulamak, en azından arabirimin bildirdiği üyeleri uygulamayı taahhüt eder, ancak özelliğin yazılabilir olmasını sağlamak gibi daha fazla işlevsellik sunabilirsiniz.
İlgili Konular
| Başlık | Açıklama |
|---|---|
| İzlenecek yol: Arabirimleri Oluşturma ve Uygulama | Kendi arabiriminizi tanımlama ve uygulama sürecinde size kılavuzluk eden ayrıntılı bir yordam sağlar. |
| Genel Arabirimlerde Varyans | Genel arabirimlerde Kovaryans ve değişken varyansı açıklar ve .NET Framework değişken genel arabirimlerin bir listesini sağlar. |