成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#的Tag Message回顧:繁瑣而危險

開發(fā) 后端
本文回顧了C#的Tag Message的使用方法,并通過圖示指出,在C#中使用Tag Message是十分繁瑣和危險的。

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

C#的Tag Message

  1. class Person : Actor<Message>  
  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 

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

【編輯推薦】

  1. Erlang的Actor回顧:將消息轉(zhuǎn)化為邏輯執(zhí)行
  2. Actor模型的本質(zhì):究竟是要解決什么問題
  3. 順暢的使用C# Actor:另一個解決方案
  4. C# Actor的尷尬與F#美麗外表下的遺憾
  5. 看Erlang中Actor模型的執(zhí)行方式和優(yōu)劣
責(zé)任編輯:yangsai 來源: 老趙點滴
相關(guān)推薦

2009-08-13 09:46:49

C#歷史C# 4.0新特性

2020-09-15 09:23:19

C++WindowsC#

2009-08-25 17:15:50

C#隱藏C#重寫C#重載

2025-04-08 00:07:37

語法糖C#代碼

2009-09-02 10:58:02

C#動態(tài)數(shù)組

2021-03-15 08:18:23

C#反射模塊

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:21:31

C#索引

2025-02-28 05:45:21

C#代碼模式

2009-09-01 18:29:10

C#繼承C#多態(tài)

2009-08-27 16:18:47

C#類C#結(jié)構(gòu)體

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-13 17:04:09

C#語言C#程序

2009-08-25 17:59:49

C#入門

2009-08-27 16:11:03

C# delegateC# event

2009-08-18 10:48:25

C#事件

2009-08-25 15:09:30

C#線程的啟動

2011-07-06 09:44:34

C#

2011-07-06 09:46:56

C#

2009-07-30 15:24:13

C#析構(gòu)函數(shù)C#構(gòu)造函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品精品 | 亚洲国产精品网站 | 曰韩一二三区 | 久久久久久国产精品免费免费男同 | 久久精品一区 | 日韩精品免费 | 国产美女自拍视频 | 成av在线 | 亚洲欧美视频一区 | 99pao成人国产永久免费视频 | 四虎影音 | 欧美精品成人 | 精品综合久久久 | 亚洲在线一区 | 欧美久久久久久 | 久久伊人一区 | 久久精点视频 | 国产精品毛片 | 成人免费在线观看 | 国产日韩一区二区三区 | 自拍偷拍亚洲视频 | av中文在线播放 | 午夜视频一区二区三区 | 91国内精精品久久久久久婷婷 | a级黄色片在线观看 | 伊人亚洲 | 久久久久久中文字幕 | 在线观看 亚洲 | 一区二区三区视频在线观看 | 91久久精品一区二区三区 | 成人福利在线视频 | 97人人澡人人爽91综合色 | www.亚洲视频| 91精品国产91久久久久久最新 | 国产aⅴ| 人人99| 黄色成人在线观看 | 精品视频一区在线 | 国产激情第一页 | 在线观看国产视频 | 四虎影院欧美 |