日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

原来还有dynamic这东西。

發布時間:2024/4/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原来还有dynamic这东西。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????或許之前看過.net4.0的新特性,或許哪個技術文章或者源代碼中使用了dynamic類型,不過都沒特別注意過它,平時也基本不會和它打交道。今天遇到了個問題,百思不得姐。

先引入dynamic類型的定義:

在通過 dynamic 類型實現的操作中,該類型的作用是繞過編譯時類型檢查, 改為在運行時解析這些操作。

?????? 不同于var,var一般在定義局部變量的時候使用,往往你都不用考慮它是什么類型的變量,你只管使用她就行了。var這個語法糖比較甜,平時用的也比較多。與dynamic類型相反,它是個編譯時就解析這個行為。

?

????? 前臺定義了DataGrid,binding了一個ItemsSource,但是后臺的源不止一個,我想在不同的條件判斷下顯示不同的源。(MVVM下的Demo)

xaml:

<DataGrid ItemsSource = {Binding DataShowItemsSource}/>

要binding的兩個源:

//Source Apublic class Student {public int Age { get; set; }public string Name { get; set; }}//Source Bpublic class Course{public string Name { get; set; }public string CourseName { get; set; }}

保存這兩個源并且具有通知屬性的集合,毫無疑問binding DataGrid的ItemsSource的屬性也是ObserverableCollection類型的:

ObserverableCollection<Student> studentList; ObserverableCollection<Course> courseList;

現在的問題是該ItemsSource到底應該存什么樣的類型,Student?or Course?如果我想做類似的事情,通過條件判斷我就能binding不同的源:

if(A) {ShowDataItemsSource = studentList; } if(B) {ShowDataItemsSource = courceList; }

可是ShowDataItemSource有可能是兩種泛型:ObserverableCollection<Student> 或者ObserverableCollection<Course>,但是我們只有在if判斷之后才能明確知道ShowDataItemsSource的具體類型。

?

有了dynamic,只要將DataShowItemsSource類型定義為dynamic就可以在運行時判斷它的類型了。

?

想想如果回到4.0以前,我是不是要考慮建兩個view,或者建兩個DataGird,或者干脆把這兩個數據源對象寫在一起?

?

轉載于:https://www.cnblogs.com/tiny-wang/archive/2012/11/16/2774120.html

總結

以上是生活随笔為你收集整理的原来还有dynamic这东西。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。