短的答案:
取物件prop值的方法有兩種:
1.問題中提到的方法
2.jupiter.Name 或 jupiter.Distance
長的答案:
要弄清楚 Class 和 Object 的差別
Planet 是 Class (定義);jupiter 是 Object (實體)
Class 裡面是沒有「值」的;Object 才有「值」
PropertyInfo 是「Class 所有的 property 資訊」
包括名稱,型態
至於「值」,只有 Object 才有
這是為什麼 getValue() 要傳 Object 的原因
如果我能決定
我根本不會提供 getValue 這個函式
因為會造成混淆
實務上用到的機會也不大
使用 Object 時
不太會連 Object 的名稱都不知道
他定義方式如下,就得按照他的傳法
public object? GetValue (object? obj);
你是不是想說prop.GetValue(),這個prop本來就是從object來的,為何還要多傳這參數?
嗯那答案就如上,他就是這樣處理數值,除非他又做了一個另一個方法,能達到同樣效果XD
public object? GetValue ();
來自 https://docs.microsoft.com/zh-tw/dotnet/api/system.reflection.propertyinfo.getvalue?view=net-5.0