日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#的TagMessage回顧:繁瑣而危險

一般來說,Erlang的消息是一個元組,而元組的***個元素為原子,用來標識“做什么”。這個原子被稱為是這個消息tag,這種用法被叫做Tag Message,它是“Erlang編程規(guī)范”中的推薦用法。在C#中,我們當然也可以這么做:

創(chuàng)新互聯(lián)建站主營碾子山網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,App定制開發(fā),碾子山h5小程序定制開發(fā)搭建,碾子山網(wǎng)站營銷推廣歡迎碾子山等地區(qū)企業(yè)咨詢

C#的Tag Message

 
 
 
 
  1. class Person : Actor  
  2. {  
  3.     protected override void Receive(Message message)  
  4.     {  
  5.         if (message.Tag == "Chat")  
  6.         {  
  7.             Person another = (Person)message.Arguments[0];  
  8.             Topic topic = (Topic)message.Arguments[1];  
  9.             // ...  
  10.         }  
  11.         else if (message.Tag == "Eat")  
  12.         {  
  13.             Restaurant restaurant = (Restaurant)message.Arguments[0];  
  14.             // ...  
  15.         }  
  16.         else if (message.Tag == "Work")  
  17.         {  
  18.             Person reportTo = (Person)message.Arguments[0];  
  19.             Job job = (Job)message.Arguments[1];  
  20.             // ...  
  21.         }  
  22.     }  

C#的Tag Message圖示如下:

C#的Tag Message這個方式和Erlang可謂如出一轍,但是由于缺少了Erlang的模式匹配和自動綁定,于是C#代碼需要大量的if…else判斷,以及繁瑣而危險的轉(zhuǎn)型操作。此外,和Erlang中動態(tài)類型的缺點完全相同,無論是消息的發(fā)送還是接受完全不是靜態(tài)類型的,因此無論是靜態(tài)檢查,編輯還是重構(gòu)都比較困難。試想,如果一個公用的服務所接受的消息結(jié)構(gòu)改變了,那么所有用到它的地方都必須修改正確——如果缺少靜態(tài)檢查,錯誤都只能在運行時才能發(fā)現(xiàn)。Erlang有著強大的動態(tài)升級能力,尚可接受不斷地在線更新。而在.NET平臺中,如果使用這種Tag Message的方式,待到運行時發(fā)現(xiàn)錯誤,要修改起來就比較麻煩了。


新聞名稱:C#的TagMessage回顧:繁瑣而危險
本文URL:http://www.dlmjj.cn/article/codpocj.html