国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

從Csharp走到VB.Net(一):MyClass保留字

2024-07-10 13:00:53
字體:
來源:轉載
供稿:網友

2003年開始我接觸的第一個b/s項目是dotnet,用的是csharp.到現在2年過去了,也接觸了vb.net的項目,一步步走過來,看到同時clr平臺,2種語言在保留字上的特性還是很大的.
以下我一一列來:
關于myclass,大家請先建立一個vbconsoleapplication程序,將本文sourcecp進去

module module1

class baseclass
public overridable sub mymethod()
console.writeline("father is 50 years old!")
end sub
public sub useme()
me.mymethod() ' use calling class's version, even if an override.
end sub
public sub usemyclass()
myclass.mymethod() ' use this version and not any override.
end sub
end class
class derivedclass : inherits baseclass
public overrides sub mymethod()
console.writeline("child is just 25 years old!")
end sub
end class


sub main()
dim child as new derivedclass
child.useme()
child.usemyclass()
console.readline()

end sub

end module
但是在csharp里竟然無法實現,c#怎樣也不允許我按非虛函數的方式調用一個虛函數。c++可以用類名::方法名的方式訪問自身版本的函數,但c#的類名只能用來訪問靜態的成員。這真是c#一個奇怪的限制。也許是我少見多怪吧.在msdn中是這么描述的:
myclass 的行為類似于引用最初實現時類的當前實例的對象變量。myclass 與 me 類似,但對它的所有方法的調用都按該方法為 notoverridable 來處理。因此,所調用的方法不受派生類中的重寫影響。盡管 derivedclass 重寫了 mymethod,但 usemyclass 中的 myclass 關鍵字使重寫的影響無效,編譯器會將該調用解析為 mymethod 的基類版本。
myclass 不能在 shared 方法內部使用,但您可以在實例方法內部使用它來訪問類的共享成員。


但是在csharp里竟然無法實現,c#怎樣也不允許我按非虛函數的方式調用一個虛函數。c++可以用類名::方法名的方式訪問自身版本的函數,但c#的類名只能用來訪問靜態的成員。這真是c#一個奇怪的限制。也許是我少見多怪吧.在msdn中是這么描述的:
myclass 的行為類似于引用最初實現時類的當前實例的對象變量。myclass 與 me 類似,但對它的所有方法的調用都按該方法為 notoverridable 來處理。因此,所調用的方法不受派生類中的重寫影響。盡管 derivedclass 重寫了 mymethod,但 usemyclass 中的 myclass 關鍵字使重寫的影響無效,編譯器會將該調用解析為 mymethod 的基類版本。
myclass 不能在 shared 方法內部使用,但您可以在實例方法內部使用它來訪問類的共享成員。
這點在商業應用中還是很不錯的,比如父類為一個employeebase,包含一個底薪的數據,那么在實例化雇員的employee中,dim e1 as new employee(employeeid),增加員工的底薪的時候,在o/r映像模型建立好之后只需要調用e1.addsalary(salary)方法即可調用基類的底薪修改方法.(即統一加底薪).個人意見,呵呵,所得不好,還請大家多多指教.



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深水埗区| 南涧| 青铜峡市| 阿巴嘎旗| 门头沟区| 深泽县| 织金县| 德化县| 宁津县| 山东| 额尔古纳市| 吴旗县| 襄垣县| 儋州市| 新安县| 苏尼特左旗| 平舆县| 抚远县| 南部县| 石屏县| 镶黄旗| 乳山市| 比如县| 理塘县| 松桃| 永顺县| 绥德县| 新龙县| 南澳县| 嵊州市| 隆化县| 东莞市| 聊城市| 都昌县| 太湖县| 桃园市| 万全县| 陇西县| 新民市| 都安| 阿勒泰市|