簡體   English   中英

如何創建具有單個屬性的對象,該屬性的名稱要在運行時才能知道

[英]How to create an object with a single property, the name of which is not known until run-time

我需要用單個屬性創建一個非常簡單的對象。 問題在於此屬性的名稱是可變的,直到運行時才知道。

我正在使用c#。

我一直在環顧四周,發現了很多東西,這些東西似乎是我需要做的非常漫長的方法(例如, 在運行時添加屬性 )。 但是,這種解決方案似乎有點過大,所以我真的希望有一種更簡單的方法。

為什么?

我正在使用WPF應用程序。 在某些情況下,我有想要處理空值的組合框。 我已經在這里找到了解決這個問題的絕佳方法: http : //philondotnet.wordpress.com/2009/09/18/how-to-select-null-none-in-a-combobox-listbox-listview/

但是,此解決方案的主要問題(如第二條評論所述)是,如果設置了選擇器的DisplayMemberPath,則空值文本將顯示為空白。 解決此問題的方法僅是修改NullItem以返回具有屬性的對象,該屬性的名稱為DisplayMemberPath,而值是null值的字符串表示形式。

您可以考慮使用

ExpandoObject

考慮到ExpandoObject實現IDictionary ,可以將其強制轉換為:

var expando = new System.Dynamic.ExpandoObject(); 
var expandoDic= expando as IDictionary<String, Object>;

expandoDic["Name"] = "Jane";
expandoDic["Surname"] = "Eyre";     
var name  = expandoDic["Name"]; 
var surname = expandoDic["Surname"]; 
var book = name + " " + surname;

這樣的輸出是

如預期的那樣,“簡·愛”;

暫無
暫無

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

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