你沒有張貼要求很多信息,但是,如果你知道你的對象類型,然後就沒有必要使用反射,你可以用is
像測試這樣的:
if(returnCity && myObject is Country) //I'm assuming that the input value is boolean but, you get the idea...
{
return myObject.City.Name;
}
else
{
return myObject.Name;
}
現在,如果你想使用反射,你可以做這些線路中的東西:
public static string GetNameFrom(object myObject)
{
var t = myObject.GetType();
if(t == typeof(Country))
{
return ((Country)myObject).City.Name;
}
return ((City)myObject).Name;
}
或者,更通用的方法:
static string GetNameFrom(object myObject)
{
var type = myObject.GetType();
var city = myObject.GetProperty("City");
if(city != null)
{
var cityVal = city.GetValue(myObject, null);
return (string)cityVal.GetType().GetProperty("Name").GetValue(cityVal, null);
}
return (string)type.GetProperty("Name").GetValue(myObject, null);
}
可以告訴你輸入的輸出如何影響?你的意見是什麼? –
的Cuong樂,當 「myCountry.Name」,然後 「{國家}。{NAME}」,當 「myCountry.MyCity.Name」,然後 「{國家}。{MyCity}。{NAME}」,並使其SENS? – Yara
更好告訴你的方法定義什麼是你輸入的,什麼是我們的輸出 –