色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

不能不說的C#特性-擴展方法

系列文章導航:

走進Linq--Linq橫空出世篇

走進Linq-輝煌的背后

走進Linq-Linq大觀園

不能不說的C#特性-對象集合初始化器

不能不說的C#特性-匿名類型與隱式類型局部變量

不能不說的C#特性-擴展方法

不能不說的C#特性-匿名方法和Lambda表達式

不能不說的C#特性-迭代器(上)及一些研究過程中的副產品

不能不說的C#特性-迭代器(下),yield以及流的延遲計算

走進Linq-Linq to Objects(上)基礎篇

走進Linq-Linq to Objects(下)實例篇

走進Linq-Linq to SQL感性認識篇

走進Linq-Linq to SQL How do I(1)

走進Linq-Linq to SQL How do I(2)

走進Linq-Linq to SQL How do I(3)

走進Linq-How do I(4)拾遺補零篇第一節

走進Linq-Linq to SQL源代碼賞析 Table的獲取過程

走進Linq-Linq to SQL源代碼賞析之Provider的初始化

走進Linq-Linq to SQL源代碼賞析,通過Linq to SQL看Linq


在我們的編程生涯中我們要使用很多很多類庫,這些類庫有的是我們自己開發的,我們有她的代碼,有的是第三方發布的,我們不僅沒有他們的代碼,連看的機會都沒有。

作為.NET程序員,我們每天都要和BCL(Base Class Linbrary)打交道。無疑,BCL做為一個年輕的框架類庫,她是成功的,但是還有一些時候我們還是得寫一些”Helper”方法來擴展類庫,由于我們不能修改類庫的源代碼,我們只有寫一個個的靜態類。雖然在使用上也算方便,但作為追求完美的程序員來說總有些不雅。現在我就碰到這樣的事情,前兩天奉命寫一個從XML文件加載Chart圖的設置的方法,從XML加載數據綁定到對象上,這肯定是反射的用武之地了。我經常需要寫一些根據對象屬性名字來判斷這個對象是否有這個屬性或者根據屬性名獲取該屬性的值。還是按照平常一樣,我很快寫了一個PropertyHelper,里面有兩個靜態方法:HASProperty,GetValueByName。

PropertyHelper.HASProperty(point, "X"),如此的調用也還過得去,不過在C# 3.0微軟為我們提供了擴展方法?,F在我們可以直接這樣調用了point.HASProperty(“X”);看看我是如何實現這個擴展方法的?

public static class PropertyExtension
{
        
public static object GetValueByName(this object self, string propertyName)
        {
            
if (self == null)
            {
                
return self ;
            }
            Type t 
= self.GetType();
            PropertyInfo p 
= t.GetProperty(propertyName);
            
return p.GetValue(self, null);
        }
}

it知識庫不能不說的C#特性-擴展方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 富宁县| 平塘县| 平昌县| 富锦市| 罗甸县| 梧州市| 武穴市| 开平市| 齐河县| 鲜城| 毕节市| 四平市| 崇阳县| 遵义县| 武安市| 丰顺县| 禄劝| 顺昌县| 垦利县| 开化县| 乐平市| 凌海市| 灯塔市| 子洲县| 通江县| 进贤县| 赞皇县| 达孜县| 十堰市| 疏勒县| 天峨县| 赤峰市| 卢龙县| 盐城市| 长寿区| 万州区| 嘉鱼县| 胶南市| 北安市| 秀山| 鲁山县|