第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

C#基礎(chǔ):dynamic類型

標簽:
C#

dynamic类型是.NET 4.0引入的一个新的概念,它的目的是增强与python等动态语言的互操作性。由于动态的原因,使得dynamic类型的变量只有在运行时才能被确定具体类型,而编译器也会绕过对这种类型的语法检查。其实这样做是危险的。

下面的代码演示了在C#中如何使用dynamic类型:

123456789101112131415class Person{    public string Name { get; set; }} class Program{    static void Main(string[] args)    {        dynamic c = new Person();        c.Name = "abc";        c.Age = 30;        Console.WriteLine(c.Name);    }}

这段代码是可以编译通过的,尽管Person类中并没有定义Age这个公有属性,因为c的类型是在运行时动态绑定的,因此,执行这段代码时就会出现错误:

由于编译器会忽略由dynamic定义的变量,因此它能够用来解决一些与强类型“冲突”的问题。不知您是否还记得我之前写的一篇关于泛型的接口抽象的文章。那么,我们可以使用dynamic变量来解决这篇文章中提出的问题。代码如下:



public interface IXRefData{    // TODO: add definition here         } public class XRefComponent<TData>    where TData : IXRefData{    public void Update() { }} public class XRefPickData : IXRefData { } public class XRefPackData : IXRefData { } public class XRefUpdator{    private List<dynamic> components = new List<dynamic>();    public List<dynamic> Components    {        get { return components; }        set { components = value; }    }} class Program{    static void Main(string[] args)    {        XRefUpdator updator = new XRefUpdator();                 // 现在就可以将两种完全不同的类型添加到Component列表中了         updator.Components.Add(            new XRefComponent<XRefPickData>());         updator.Components.Add(            new XRefComponent<XRefPackData>());    }}

最后提一句,使用dynamic的程序最好做一下单体测试,因为它可能带来更多的运行时错误。

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消