簡體   English   中英

C#.net中對象的動態類型轉換

[英]dynamic type casting of objects in C#.net

我創建了一個class student並在該班級中創建了contact對象(匯總)。 我正在“對象”數組中檢索所有存儲的對象。

如果要訪問student屬性,則必須使用student類型對其進行student ;如果要訪問contact屬性,則必須給出完整路徑( student_object.contact_object.attribute_name ),或者只需鍵入具有contact student_object.contact_object.attribute_name類型並獲取屬性值即可。

我停留在兩個地方:

  1. 如果我接受用戶的類名,然后要訪問該值。 我怎樣才能做到這一點? 如何使用文本框變量輸入類型轉換。
  2. 如果我在文本框中接受用戶的字段名稱。 如何使用文本框變量訪問值?

喬恩,實際上我已經在C#.NET中創建了一個面向對象的數據庫。 上面的課程在那里 我正在檢索對象數組中的所有對象。 班級學生具有字段名稱和年齡,而聯系人具有mobileID。 現在,我通過文本框創建查詢。 如果用戶想查看所有對象的名稱,則可以保留var2名稱。 但我無法收到此消息messageBox.show(o0作為Student).var2); 如果給我var1 messageBox.show(o0 as var1).var2),而不是Student,則相同。 我可以這樣做嗎? 謝謝/巴蒂

轉換對於編譯時信息很重要。 這排除了用戶在執行時提供的任何內容。

聽起來您真的需要反思:

PropertyInfo property = value.GetType().GetProperty(propertyName);
// Insert validation here...
object propertyValue = property.GetValue(value, null);

如果希望用戶能夠評估諸如Address.ZipCode之類的屬性的路徑 ,則需要變得更聰明,但這應該為您提供一個起點。

暫無
暫無

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

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