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)