創作內容

14 GP

C# dynamic型別

作者:貓貓風 ฅ●ω●ฅ│2019-03-07 16:10:25│巴幣:28│人氣:807
.




















在 C# 4.0 中 新加入的資料型態 dynamic可以大幅度簡化程式內容

讓整體程式看起來更簡潔

dynamic 型別可以是一種在執行時才去連結的型態,它會告訴編譯器

在編譯時(compile time)不去檢查 dynamic 型別所代表的資料型態,把它視為類似object

在執行時(run time) 才會決定,這代表不用在程式中宣告一個固定的型別

由 C# 程式自動在執行期間獲取資料的型別


以下範例為直接宣告dynamic 類別 和 List,並在按下按鈕時動態生成類別資料成員與內容


  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9. using System.Dynamic;  
  10. using System.Threading;  
  11.   
  12. namespace dynamic_test  
  13. {  
  14.     public partial class Form1 : Form  
  15.     {  
  16.         //宣告dynamic class  
  17.         private dynamic test_dynamic;  
  18.         //宣告dynamic list  
  19.         dynamic test_dynamic_list = new List<dynamic>();   
  20.   
  21.         public Form1()  
  22.         {  
  23.             InitializeComponent();  
  24.         }  
  25.   
  26.         private void button1_Click(object sender, EventArgs e)  
  27.         {  
  28.             //實體化dynamic class  
  29.             test_dynamic = new ExpandoObject();  
  30.             //dynamic class 加入 property 與 content  
  31.             test_dynamic.data = textBox1.Text;  
  32.             test_dynamic_list.Add(test_dynamic);  
  33.             textBox1.Text = "";  
  34.         }  
  35.   
  36.         private void button2_Click(object sender, EventArgs e)  
  37.         {  
  38.             richTextBox1.Text = "";  
  39.             //列出所有加入 dynamic list 的資料  
  40.             foreach (dynamic content in test_dynamic_list)  
  41.             {  
  42.                 richTextBox1.Text += content.data + "\n";  
  43.             }  
  44.         }  
  45.   
  46.     }  
  47. }  

首先輸入 資料一 並加入



加入資料二



加入資料三



列出所有dynamic List 中的資料


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4316979
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:涼涼風|C#

留言共 4 篇留言

小刀
讚![e12]

03-07 20:05

貓貓風 ฅ●ω●ฅ
[e12]03-08 00:33
小魚
不過會不會降低效率啊?
C#本身的效率就已經比較差了.

03-09 18:35

貓貓風 ฅ●ω●ฅ
沒影響
03-09 20:12
珀伽索斯(Ama)
看到這有點懷念大學所學的XD[e1]

03-09 20:26

需要冷氣支援
哦哦!變數宣告變得很像python的樣子了.

04-14 01:13

我要留言提醒:您尚未登入,請先登入再留言

14喜歡★s1234567 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:SHT35 溫溼度感測器... 後一篇:C# TCP 連線Tim...

追蹤私訊切換新版閱覽

作品資料夾

as88724香菇
畫畫好難啊..(☍﹏⁰)看更多我要大聲說昨天17:00


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】