簡體   English   中英

如何使用 Object 類型變量訪問 class 的屬性?

[英]How to access properties of a class using Object type variable?

我已經聲明了一個 OBJECT 類型的“變量”。 我還聲明了一個名為 TEST 的 class ,它有一個屬性“name”。 我的理解是,在語句variable = New test()中,編譯器正在創建 class TEST 的新實例,並將該新創建實例的引用/內存地址存儲在“變量”中。 這個想法是 object 類型的變量應該能夠存儲任何類型的數據或其引用。 通過使用成員訪問器運算符的邏輯,我應該能夠使用“變量”訪問屬性“名稱”。 但我做不到。 當對實例的引用存儲在 object 類型變量中時,有人可以解釋為什么以及如何訪問該屬性嗎?

Module Program
    Sub Main()
        Dim variable As Object
        variable = New test()
        Console.WriteLine("Value: {0}   Type: {1}", variable, variable.GetType())
        'Output is Type: Object_Data_Type.test --> Works
        'However we cannot access the property name of the class TEST through "varibale"
        Console.ReadLine()
    End Sub
End Module

Public Class test
    Public Property name As String
End Class

因為 Object 沒有name屬性,並且(在外部)您的變量看起來像 Object。 如果您希望它看起來像 Test ,則必須強制轉換它:

Console.WriteLine("Value: {0}   Type: {1}", DirectCast(variable, Test).name, variable.GetType())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM