十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
是的,因?yàn)檫@是一個(gè)強(qiáng)制轉(zhuǎn)換,但你沒有定義轉(zhuǎn)換的方法。 如果想要 D d6 = (D) b1; 這句話能夠正常運(yùn)行,則需要在Class D中重載如下運(yùn)算: internal class D:B { public static explicit operator D(B b) //這是一個(gè)顯式轉(zhuǎn)換 { //具體轉(zhuǎn)換方法 }
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),合川網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:合川等地區(qū)。合川做網(wǎng)站價(jià)格咨詢:13518219792
這屬于裝箱拆箱。我舉個(gè)例子你就明白了:
Dim x As Integer = 5
Dim o As Object = x '裝箱
Dim y As Integer = CType(o, Integer) '拆箱(在Option Strict Off的情況下,直接用o給y賦值,會(huì)發(fā)生自動(dòng)轉(zhuǎn)換,也就是說在這種情況下,你不必顯式調(diào)用CType函數(shù))
另外:VB.NET支持后期綁定,所以你也可以不進(jìn)行拆箱,直接在Object類型下就可以調(diào)用它的屬性和方法
比如,下面的語句在Option Strict Off是是合法的
Dim s As String = 886
Dim i As Integer = "53"
Dim f As Object = New Form()
f.Show() '注意,f是Object類型的
總之,VB.NET的語法要比C#靈活得多
Dim?txt?As?TextBox?=?CType(ctrl,?TextBox)
當(dāng)然也可以用directcast方法,實(shí)現(xiàn)的功能一樣,trycast可以避免類型不符的時(shí)候不報(bào)錯(cuò)的功能。
完全不相的類型之間則是不能轉(zhuǎn)換的,比如你的ctrl里實(shí)際上是一個(gè)button,那么無論如何都不可能給你轉(zhuǎn)換成textbox,用上面的方法的話會(huì)拋出一個(gè)異常。
強(qiáng)制類型轉(zhuǎn)換在VB.NET中用Ctype()函數(shù)實(shí)現(xiàn)的。
Dim drv As DataRowView = CType(comboBox1.SelectedItem, DataRowView)
另外:comboBox1.SelectedItem 不是 string 類型,而是 object 類型。ComboBox 下拉顯示文字是通過調(diào)用 Object.ToString() 方法實(shí)現(xiàn)的。