問題:
當我強制轉換實體類型到泛型的,或者將泛型強制轉換為實體類型,會提示無法轉換。
如下面代碼:
PersonInfor 為實體類,T為泛型
public int GetPersonMsgW_<T>(ref T pInfo, string imagePath) {
//泛型轉換為實體類型 object temp = pInfo; PersonInfor pi = (PersonInfor)temp;
//實體類型轉換為泛型 temp = pi; pInfo = (T)temp; return 0; }
大家看到了把,很明顯,我將泛型或者實體類型先賦值給中間變量 object,然后用這個中間變量進行強制轉換。
究其原因,泛型為變數,不能確定它是哪種類型,顧不能直接轉換,而賦值給中間變量就間接的 確定了它的類型,顧能進行轉換。
以上為個人見解,不對之處也請指正!!