Aracılığıyla paylaş


Tür Yükseltme (Visual Basic)

Bir modülde programlama bir öðe bildirdiðinizde Visual Basic modülü içeren ad kapsamı yükseltir.Olarak bilinen bu tür promosyon.

Aşağıdaki örnek, bir modül iskelet tanımı ve bu modül iki üyesi gösterir.

Namespace projNamespace
    Module projModule
        Public Enum basicEnum As Integer
            one = 1
            two = 2
        End Enum 
        Public Class innerClass
            Shared Sub numberSub(ByVal firstArg As Integer)
            End Sub 
        End Class 
    End Module 
End Namespace

İçinde projModule, programlama modül düzeyinde bildirilen öğeler için yükseltilmiş projNamespace.Önceki örnekte, basicEnum ve innerClass yükseltilmiş, ancak numberSub modül düzeyinde bildirilen değil, çünkü,.

Türü yükseltme etkisi

Tür promosyon niteliği dize modül adını belirtmeniz gerekmez sahiptir.Aşağıdaki örnek, önceki örnekte iki yordam çağrıları yapar.

Sub usePromotion()
    projNamespace.projModule.innerClass.numberSub(projNamespace.projModule.basicEnum.one)
    projNamespace.innerClass.numberSub(projNamespace.basicEnum.two)
End Sub

Yukarıdaki örnekte, ilk çağrı tam niteliği dizeleri kullanır.Ancak, bu tür promosyon nedeniyle gerekli değildir.İkinci çağrı da erişimleri modülünün üye eklemeden projModule nitelik dizelerde.

Tür promosyon vazgeçin

Tür promosyon ad modülü üye olarak aynı ada sahip bir üye zaten varsa, bu modülü üyenin defeated.Aşağıdaki örnek, bir numaralandırma ve aynı ad içinde bir modül iskelet bir tanımını gösterir.

Namespace thisNamespace
    Public Enum abc
        first = 1
        second
    End Enum 
    Module thisModule
        Public Class abc
            Public Sub abcSub()
            End Sub 
        End Class 
        Public Class xyz
            Public Sub xyzSub()
            End Sub 
        End Class 
    End Module 
End Namespace

Önceki örnekte, Visual Basic class yükseltemiyorsunuz abc için thisNameSpace ad alanı düzeyinde aynı ada sahip bir numaralandırma zaten olduğundan.Erişim için abcSub, tam bir nitelik dize kullanmak gerekir thisNamespace.thisModule.abc.abcSub.Ancak, sınıf xyz hala yükseltilir ve erişebildiğinizi xyzSub daha kısa bir nitelik dize ile thisNamespace.xyz.xyzSub.

Kısmi türlerinden türü terfi vazgeçin

Bir sınıf veya yapı içinde bir modülü kullanıyorsa, Kısmi (Visual Basic) anahtar sözcüğünü, tür promosyon, sınıf ya da yapı, otomatik olarak defeated ad alanı aynı ada sahip bir üye olup olmadığını.Diğer öğeleri modülünde hala tür promosyon için uygundur.

Sonuçları. Kısmi tanımının tür promosyon vazgeçin, hatta derleyici hataları ve beklenmedik sonuçlara neden olabilir.Aşağıdaki örnek, iskelet kısmi bir modül içinde birisi olan bir sınıf tanımları gösterir.

Namespace sampleNamespace
    Partial Public Class sampleClass
        Public Sub sub1()
        End Sub 
    End Class 
    Module sampleModule
        Partial Public Class sampleClass
            Public Sub sub2()
            End Sub 
        End Class 
    End Module 
End Namespace

Yukarıdaki örnekte iki kısmi tanımları birleştirmek için derleyici Geliştirici bekleyebilirsiniz sampleClass.Ancak, derleyici kısmi tanımının içinde terfi düşünmez sampleModule.Sonuç olarak, iki ayrı ve farklı sınıf derlemek çalışır, hem de adlı sampleClass ancak farklı bir nitelik yollar.

Derleyici yalnızca kendi tam olarak nitelenmiş yollar aynı olduğunda kısmi tanımları birleştirir.

Öneriler

Aşağıdaki öneriler, programlama iyi temsil eder.

  • Benzersiz adlar. Programlama öğelerine adlandırma üzerinde tam denetime sahip olduğunuzda, her zaman benzersiz adlar her yerde kullanmak iyi bir fikir olur.Aynı adları fazladan nitelik gerektiren ve kodunuzun okunması zor duruma getirebilirsiniz.Bunlar da çarpmayan hatalara ve beklenmedik sonuçlara yol açabilir.

  • Tam bir nitelik. Modüller ve diğer öğelerle aynı ad ile çalışırken, en güvenli yaklaşım her zaman tam bir nitelik programlama tüm öğeler için kullanmaktır.Tür promosyon modülü üyesi defeated ve size tam olarak bu üyenin geçerli olmayan, farklı programlama öğe yanlışlıkla erişebilir.

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir Değişkenin Kapsamını Denetleme (Visual Basic)

Başvuru

Module Deyimi

Namespace Deyimi

Kısmi (Visual Basic)

Kavramlar

Visual Basic'de Kapsam

Bildirilmiş Öğelere Başvurular (Visual Basic)