Interface Deyimi (Visual Basic)

Bir arabirimin adını bildirir ve arabirimin oluşturduğu üyelerin tanımlarını tanıtır.

Sözdizimi

[ <attributelist> ] [ accessmodifier ] [ Shadows ] _  
Interface name [ ( Of typelist ) ]  
    [ Inherits interfacenames ]  
    [ [ modifiers ] Property membername ]  
    [ [ modifiers ] Function membername ]  
    [ [ modifiers ] Sub membername ]  
    [ [ modifiers ] Event membername ]  
    [ [ modifiers ] Interface membername ]  
    [ [ modifiers ] Class membername ]  
    [ [ modifiers ] Structure membername ]  
End Interface  

Parça

Süre Tanım
attributelist isteğe bağlı. Bkz. Öznitelik Listesi.
accessmodifier isteğe bağlı. Aşağıdakilerden biri olabilir:

- Public
- Protected
- Friend
- Private
- Protected Friend
- Private Protected

Bkz. Visual Basic'te erişim düzeyleri.
Shadows isteğe bağlı. Bkz. Gölgeler.
name Gerekli. Bu arabirimin adı. Bkz. Bildirilen Öğe Adları.
Of isteğe bağlı. Bunun genel bir arabirim olduğunu belirtir.
typelist Of anahtar sözcüğünü kullanıyorsanız gereklidir. Bu arabirim için tür parametrelerinin listesi. İsteğe bağlı olarak, her tür parametresi ve Out genel değiştiriciler kullanılarak In değişken olarak bildirilebilir. Bkz. Tür Listesi.
Inherits isteğe bağlı. Bu arabirimin başka bir arabirimin veya arabirimlerin özniteliklerini ve üyelerini devraldığını gösterir. Bkz. Inherits Deyimi.
interfacenames deyimini Inherits kullanıyorsanız gereklidir. Bu arabirimin türetildiği arabirimlerin adları.
modifiers isteğe bağlı. Tanımlanan arabirim üyesi için uygun değiştiriciler.
Property isteğe bağlı. Arabirimin üyesi olan bir özelliği tanımlar.
Function isteğe bağlı. Arabirimin üyesi olan bir Function yordamı tanımlar.
Sub isteğe bağlı. Arabirimin üyesi olan bir Sub yordamı tanımlar.
Event isteğe bağlı. Arabirimin üyesi olan bir olayı tanımlar.
Interface isteğe bağlı. Bu arabirim içinde iç içe yerleştirilmiş bir arabirim tanımlar. İç içe arabirim tanımı bir End Interface deyimiyle sonlandırılmalıdır.
Class isteğe bağlı. Arabirimin üyesi olan bir sınıfı tanımlar. Üye sınıf tanımı bir End Class deyimiyle sonlandırılmalıdır.
Structure isteğe bağlı. Arabirimin üyesi olan bir yapıyı tanımlar. Üye yapısı tanımı bir End Structure deyimiyle sonlandırılmalıdır.
membername Arabirimin üyesi olarak tanımlanan her özellik, yordam, olay, arabirim, sınıf veya yapı için gereklidir. Üyenin adı.
End Interface Tanımı sonlandırır Interface .

Açıklamalar

Arabirim, sınıfların ve yapıların uygulayabileceği özellikler ve yordamlar gibi bir üye kümesini tanımlar. Arabirimi, iç çalışmalarını değil yalnızca üyelerin imzalarını tanımlar.

Bir sınıf veya yapı, arabirimi tarafından tanımlanan her üye için kod sağlayarak arabirimi uygular. Son olarak, uygulama bu sınıftan veya yapıdan bir örnek oluşturduğunda, bir nesne var olur ve bellekte çalışır. Daha fazla bilgi için bkz . Nesneler, Sınıflar ve Arabirimler.

Yalnızca ad alanı veya modül düzeyinde kullanabilirsiniz Interface . Bu, bir arabirimin bildirim bağlamının bir kaynak dosya, ad alanı, sınıf, yapı, modül veya arabirim olması gerektiği ve bir yordam veya blok olamayacağı anlamına gelir. Daha fazla bilgi için bkz . Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri.

Arabirimler varsayılan olarak Arkadaş erişimi olarak adlandırılır. Erişim değiştiricileri ile erişim düzeylerini ayarlayabilirsiniz. Daha fazla bilgi için bkz . Visual Basic'te erişim düzeyleri.

Kurallar

  • arabirimleri iç içe geçirme. Bir arabirimi başka bir arabirim içinde tanımlayabilirsiniz. Dış arabirim, içeren arabirim olarak adlandırılır ve iç arabirim iç içe arabirim olarak adlandırılır.

  • Üye Bildirimi. Bir özelliği veya yordamı bir arabirimin üyesi olarak bildirdiğinizde, yalnızca bu özelliğin veya yordamın imzasını tanımlarsınız. Bu öğe türünü (özellik veya yordam), parametrelerini ve parametre türlerini ve dönüş türünü içerir. Bu nedenle, üye tanımı yalnızca bir kod satırı kullanır ve veya gibi End FunctionEnd Property sonlandırıcı deyimler bir arabirimde geçerli değildir.

    Buna karşılık, bir numaralandırma veya yapı ya da iç içe geçmiş bir sınıf veya arabirim tanımladığınızda, veri üyelerini dahil etmek gerekir.

  • Üye Değiştiricileri. Modül üyelerini tanımlarken herhangi bir erişim değiştirici kullanamazsınız veya Paylaşılan veya Aşırı Yüklemeler dışında herhangi bir yordam değiştirici belirtemezsiniz. Gölgeler ile herhangi bir üyeyi bildirebilir ve bir özelliği tanımlarken Varsayılan'ı ve ReadOnly veya WriteOnly'yi kullanabilirsiniz.

  • Devralma. Arabirim Inherits Deyimini kullanıyorsa, bir veya daha fazla temel arabirim belirtebilirsiniz. Her biri aynı ada sahip bir üye tanımlasalar bile iki arabirimden devralabilirsiniz. Bunu yaparsanız, uygulayan kodun hangi üyeyi uyguladığını belirtmek için ad niteliğini kullanması gerekir.

    Bir arabirim, daha kısıtlayıcı erişim düzeyine sahip başka bir arabirimden devralamaz. Örneğin, bir arabirim bir PublicFriend arabirimden devralamaz.

    Bir arabirim, içinde iç içe yerleştirilmiş bir arabirimden devralamaz.

  • Uygulama. Bir sınıf bu arabirimi uygulamak için Implements deyimini kullandığında, arabiriminde tanımlanan her üyeyi uygulaması gerekir. Ayrıca, uygulayan koddaki her imzanın bu arabirimde tanımlanan karşılık gelen imzayla tam olarak eşleşmesi gerekir. Ancak, uygulayan koddaki üyenin adının arabirimde tanımlandığı gibi üye adıyla eşleşmesi gerekmez.

    Bir sınıf bir yordam uyguladığında, yordamı olarak Sharedatayamaz.

  • Varsayılan Özellik. Bir arabirim, varsayılan özelliği olarak en fazla bir özellik belirtebilir ve bu özellik adı kullanılmadan başvurulabilir. Böyle bir özelliği Varsayılan değiştirici ile bildirerek belirtirsiniz.

    Bunun, bir arabirimin varsayılan özelliği ancak hiçbiri devralmadıysa tanımlayabileceği anlamına geldiğini unutmayın.

Davranış

  • Erişim Düzeyi. Tüm arabirim üyeleri örtük olarak Genel erişime sahiptir. Üye tanımlarken herhangi bir erişim değiştirici kullanamazsınız. Ancak, arabirimini uygulayan bir sınıf, uygulanan her üye için bir erişim düzeyi bildirebilir.

    Bir değişkene sınıf örneği atarsanız, üyelerinin erişim düzeyi değişkenin veri türünün temel arabirim mi yoksa uygulayan sınıf mı olduğuna bağlı olabilir. Aşağıdaki örnek bunu göstermektedir.

    Public Interface IDemo
        Sub DoSomething()
    End Interface
    Public Class implementIDemo
        Implements IDemo
        Private Sub DoSomething() Implements IDemo.DoSomething
        End Sub
    End Class
    Dim varAsInterface As IDemo = New implementIDemo()
    Dim varAsClass As implementIDemo = New implementIDemo()
    

    aracılığıyla sınıf üyelerine varAsInterfaceerişirsen, bunların tümü genel erişime sahiptir. Ancak, aracılığıyla varAsClassüyelere erişiyorsa, yordamın doSomethingSub özel erişimi vardır.

  • Kapsam. Arabirim, ad alanı, sınıfı, yapısı veya modülü boyunca kapsam içindedir.

    Her arabirim üyesinin kapsamı arabirimin tamamıdır.

  • Ömür. Bir arabirimin ne bir ömrü vardır ne de üyeleri. Bir sınıf bir arabirim uyguladığında ve bu sınıfın bir örneği olarak bir nesne oluşturulduğunda, nesnenin çalıştığı uygulama içinde bir ömrü vardır. Daha fazla bilgi için bkz. Sınıf Deyimi'nde "Yaşam Süresi".

Örnek

Aşağıdaki örnekte deyimi, deyimi ve deyimiyle uygulanması gereken adlı thisInterfacebir PropertyFunction arabirim tanımlamak için kullanılırInterface.

Public Interface thisInterface
    Property ThisProp(ByVal thisStr As String) As Char
    Function ThisFunc(ByVal thisInt As Integer) As Integer
End Interface

Property ve Function deyimlerinin ve ile biten End Property ve End Function arabirimi içinde bloklar eklemediğini unutmayın. Arabirimi yalnızca üyelerinin imzalarını tanımlar. tam Property ve Function blokları thisInterfaceuygulayan bir sınıfta görünür.

Ayrıca bkz.