2
我有一個Dictionary<string,string> dictionary
其中密鑰持有一個屬性的名稱,並在值對應的值。然後我有許多不同的模型和一個處理這些不同模型的Generic類。我試圖通過模式匹配來設置相關屬性的值(除非有更好的方法?)。c#模式匹配屬性的泛型類?
var record = new T();
foreach (var property in ReflectiveOps.Properties(record))
{
if (dictionary.ContainsKey(property.Name))
{
switch ...???
我已經嘗試切換property.PropertyType
然後case int
和case int i
,但沒有奏效。我可以做一個if(property.PropertyType.Name == "int"{...}
- 工作。這可以用開關完成嗎?
'property.PropertyType == typeof(int)'會更好 –
@PatrickHofman:是的,但是,這似乎也只適用於'if..then'語句。如果我把它放到案例中,我會得到一個預期爲常數值的錯誤。 – ToshiBoy
@PatrickHofman,但一個很好的建議...(錯誤捕捉atm,並看到名稱「int32」碰巧不同於「int」,但與您的'typeof'相同:-) – ToshiBoy