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

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

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

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

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判斷,以及繁瑣而危險的轉型操作。此外,和Erlang中動態類型的缺點完全相同,無論是消息的發送還是接受完全不是靜態類型的,因此無論是靜態檢查,編輯還是重構都比較困難。試想,如果一個公用的服務所接受的消息結構改變了,那么所有用到它的地方都必須修改正確——如果缺少靜態檢查,錯誤都只能在運行時才能發現。Erlang有著強大的動態升級能力,尚可接受不斷地在線更新。而在.NET平臺中,如果使用這種Tag Message的方式,待到運行時發現錯誤,要修改起來就比較麻煩了。

【編輯推薦】

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

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#動態數組

2021-03-15 08:18:23

C#反射模塊

2009-08-25 17:21:31

C#索引

2009-09-02 17:10:45

C#語言入門

2025-02-28 05:45:21

C#代碼模式

2009-09-01 18:29:10

C#繼承C#多態

2009-08-27 16:18:47

C#類C#結構體

2009-08-26 09:54:45

C#打印預覽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#析構函數C#構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费小视频在线观看 | 国产一区二区观看 | 少妇精品亚洲一区二区成人 | 久www| 成人在线视频免费观看 | 日韩精品一区二区三区 | 国产一区二区三区在线看 | 最新中文字幕在线 | 欧美一区二区三区视频在线播放 | 日韩av电影在线观看 | 欧美日韩福利视频 | 国产免费一区二区三区网站免费 | 一区二区三区日韩精品 | 亚洲喷水 | 精品国产欧美日韩不卡在线观看 | 国产午夜三级一区二区三 | 欧美国产日本一区 | 99精品欧美一区二区三区综合在线 | 国产精品高潮呻吟久久av黑人 | 天天色av | 色网在线播放 | 日韩欧美国产一区二区三区 | 一区二区三区免费 | 国产乱码精品一区二区三区五月婷 | 国产精品一区二区欧美黑人喷潮水 | 色综合一区二区三区 | 国产精品不卡一区 | 国产免费一区二区 | 日韩欧美网 | 在线观看国产视频 | h视频在线播放 | 国产乱码精品1区2区3区 | 国产成人精品一区 | 中文字幕日韩欧美一区二区三区 | 欧美视频一区 | 亚洲天堂色 | 久久福利电影 | 亚洲午夜视频 | 亚洲成人精品一区 | 中日韩av| 日韩精品在线看 |