ما هو ما يعادل VB من instanceof جافا وisInstance ()؟
-
05-07-2019 - |
سؤال
في روح ج # أ > السؤال ..
ما هي البيانات أي ما يعادل مقارنة أنواع فئة في VB.NET؟
المحلول
هل تبحث عن شيء من هذا القبيل TypeOf
؟ هذا يعمل فقط مع أنواع المراجع، وليس كثافة العمليات / الخ.
If TypeOf "value" Is String Then
Console.WriteLine("'tis a string, m'lord!")
وأم أنك تريد للمقارنة بين حالات مختلفة من المتغيرات؟ يعمل أيضا لأنواع المرجع:
Dim one As Object = "not an object"
Dim two As Object = "also not an object, exactly"
Dim three as Object = 3D
If one.GetType.Equals( two.GetType ) Then WL("They are the same, man")
If one.GetType Is two.GetType then WL("Also the same")
If one.GetType IsNot three.GetType Then WL("but these aren't")
ويمكنك أيضا استخدام gettype()
مثل هكذا، إذا كنت لا تستخدم كائنين:
If three.GetType Is gettype(integer) then WL("is int")
إذا كنت تريد أن ترى إذا كان هناك شيء فئة فرعية من نوع آخر (وتكون في صافي 3.5):
If three.GetType.IsSubclassOf(gettype(Object)) then WL("it is")
ولكن إذا كنت تريد أن تفعل ذلك في الإصدارات السابقة، عليك أن الوجه (غريب أن ننظر) والاستخدام:
If gettype(Object).IsAssignableFrom(three.GetType) Then WL("it is")
وكل هذه الترجمة في SnippetCompiler ، لذلك يذهب DL إذا لم يكن لديك ذلك.
نصائح أخرى
TypeOf obj Is MyClass
وأي ما يعادل VB على سؤالك مرتبط متطابقة تقريبا:
Dim result As Boolean = obj.GetType().IsAssignableFrom(otherObj.GetType())
لا تنتمي إلى StackOverflow