第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

直接轉(zhuǎn)換返回 InvalidCastException

直接轉(zhuǎn)換返回 InvalidCastException

C#
12345678_0001 2022-12-04 13:16:25
我有一個(gè)具有泛型返回類型的方法,適用于我的SQLite數(shù)據(jù)庫(kù):    public static T SelectScalar<T>(string sql)    {        // some code...        var result = command.ExecuteScalar();        connection.Close();        return (T)result;    }像這樣稱呼它:返回線上SqliteReader.SelectScalar<int>(mysql);的凸起。InvalidCastException它出什么問(wèn)題了?我對(duì)泛型很陌生,請(qǐng)告訴我,出了什么問(wèn)題?TIA。編輯內(nèi)容 截圖result:
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

顯然,BigInt類型不能簡(jiǎn)單地轉(zhuǎn)換為int. 根據(jù)這篇文章,這似乎是一個(gè)

IIRC 你得到一個(gè) SqInt32 結(jié)構(gòu),它可以轉(zhuǎn)換為 Int32

在你的情況下可能是一個(gè)SqInt64結(jié)構(gòu)。你需要轉(zhuǎn)換它

return (T)Convert.ChangeType(result, typeof(T));

我還建議至少將通用參數(shù)限制為結(jié)構(gòu):

public static T SelectScalar<T>(string sql) where T: struct


查看完整回答
反對(duì) 回復(fù) 2022-12-04
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

ExecuteScalar()返回一個(gè)object,在本例中是一個(gè)盒裝的long。

如果您將對(duì)象轉(zhuǎn)換為int,它會(huì)嘗試拆箱 .. 一個(gè)實(shí)際的int. 將a轉(zhuǎn)換long為 anint將是一個(gè)轉(zhuǎn)換。

適用于這些特定行的演員表(但..不會(huì)幫助你)是

return (T)(long)result;

可能重復(fù):https ://stackoverflow.com/a/3541712/59492


查看完整回答
反對(duì) 回復(fù) 2022-12-04
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)