日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#基于Object解決方案

C#語言有很多值得學習的地方,這里我們主要介紹C#基于Object解決方案,包括介紹編譯器允許在任何類型和Object之間進行強制類型轉(zhuǎn)換等方面。

成都創(chuàng)新互聯(lián)公司IDC提供業(yè)務:鄭州服務器托管,成都服務器租用,鄭州服務器托管,重慶服務器租用等四川省內(nèi)主機托管與主機租用業(yè)務;數(shù)據(jù)中心含:雙線機房,BGP機房,電信機房,移動機房,聯(lián)通機房。

C#基于Object解決方案存在兩個問題。第一個問題是性能。在使用值類型時,必須將它們裝箱以便推送和存儲它們,并且在將值類型彈出堆棧時將其取消裝箱。裝箱和取消裝箱都會根據(jù)它們自己的權(quán)限造成重大的性能損失,但是它還會增加托管堆上的壓力,導致更多的垃圾收集工作,而這對于性能而言也不太好。即使是在使用引用類型而不是值類型時,仍然存在性能損失,這是因為必須從 Object 向您要與之交互的實際類型進行強制類型轉(zhuǎn)換,從而造成強制類型轉(zhuǎn)換開銷:

 
 
 
  1. Stack stack = new Stack();
  2. stack.Push("1");
  3. string number = (string)stack.Pop();

C#基于Object解決方案的第二個問題(通常更為嚴重)是類型安全。因為編譯器允許在任何類型和Object之間進行強制類型轉(zhuǎn)換,所以您將丟失編譯時類型安全。例如,以下代碼可以正確編譯,但是在運行時將引發(fā)無效強制類型轉(zhuǎn)換異常:

 
 
 
  1. Stack stack = new Stack();
  2. stack.Push(1);
  3. //This compiles, but is not type safe, and will throw an exception: 
  4. string number = (string)stack.Pop();

您可以通過提供類型特定的(因而是類型安全的)高性能堆棧來克服上述兩個問題。對于整型,可以實現(xiàn)并使用 intstack:

 
 
 
  1. public class IntStack
  2. {
  3. int[] m_Items; 
  4. public void Push(int item){...}
  5. public int Pop(){...}
  6. IntStack stack = new IntStack();
  7. stack.Push(1);
  8. int number = stack.Pop();
  9. //對于字符串,可以實現(xiàn) stringstack:
  10. public class StringStack
  11. {
  12. string[] m_Items; 
  13. public void Push(string item){...}
  14. public string Pop(){...}
  15. }
  16. StringStack stack = new StringStack();
  17. stack.Push("1");
  18. string number = stack.Pop();

網(wǎng)頁名稱:C#基于Object解決方案
鏈接分享:http://m.5511xx.com/article/cdigjcj.html