不多說了, 這是問題:(T)retObject [參數]無法拆箱 'retObject [參數]' 作爲 'T'
public static T WriteIfNotNull<T>(ManagementObject retObject, string parameter)
{
return retObject[parameter] != null ? (T)retObject[parameter] : default(T);
}
它打破時T
是int
和retObject[parameter]
是一個對象。奇怪的部分(至少對我來說)是,如果T
不是T
並且實際上是一個指定的int,它確實有效。
它說它不能被鑄造到T
(即使在這種情況下,T
是int
)。
@Edit:@dtb這裏不言而喻:
Specified cast is not valid.
(T)(object)retObject[parameter] Cannot unbox 'retObject[parameter]' as a 'T' int
而值:
參數:"ProcessId"
retObject [參數]:4
默認(T): 0
@@編輯:下面是電話太多
pr.ProcessId = Util.WriteIfNotNull<int>(retObject, "ProcessId");
(很抱歉,但沒有...問題是T,而不是對象。=( 它仍然拋出這個錯誤。) – apacay
請添加完整的錯誤消息。 – dtb
當你說「休息」,你說編譯或運行? –