国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

為參數類型一樣返回類型不同的接口寫一個泛型方法

2019-11-17 02:25:34
字體:
來源:轉載
供稿:網友

為參數類型一樣返回類型不同的接口寫一個泛型方法

Jeffrey Zhao真是神一樣的存在,伊太結棍了(上海話),每次看他的博客得使勁使勁使勁地啃。本篇源于Jeffery Zhao的"逆泛型執行器"這篇文章。該文提到了為以下的接口寫一個泛型方法:

    public interface IRecord
    {
        string GetString(string field);
        int GetInt(string field);
        long GetLong(string field);
    }

先來實現該接口:

    public class MyRecord : IRecord
    {
        public string GetString(string field)
        {
            return field + "--added string";
        }
        public int GetInt(string field)
        {
            return int.Parse(field + "1");
        }
        public long GetLong(string field)
        {
            return long.Parse(field);
        }
    }

通常,在客戶端這樣調用:

       static void Main(string[] args)
        {
            MyRecord myRecord = new MyRecord();
            Console.WriteLine(myRecord.GetString("hello"));
            Console.WriteLine(myRecord.GetInt("1"));
            Console.WriteLine(myRecord.GetLong("2"));
            Console.ReadKey();
        }  

以上,對于IRecord接口的各個方法而言,它們處在同一個接口,有相同的方法參數,唯一不同的是返回類型,看來有必要請出泛型了。

對于接口方法來說,接口就是它們的"天",它們得"一輩子"待在這里。而對于泛型而言,它以更高的視角來俯視接口和它的方法們。

可能,我們需要這樣一個針對IRecord接口的泛型方法:SomeExtenion.Get<T>(IRecord record, string str)。

這里的T是什么,返回類型就是什么, 如果T是string類型,那就返回string類型,等等。輸入參數就IRecord是接口和string類型。

如何做呢?

有這樣的一個類的輪廓模模糊糊地出現在了腦海里:

public static class RecordExtensions
{
    public static T Get<T>(IRecord record, string field)
    {
<PRe style="font-size: 10px; font-family: consolas,'Courier New',courier,mono
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双江| 许昌县| 丰台区| 扎鲁特旗| 民县| 礼泉县| 交城县| 彰化市| 伊通| 凤阳县| 婺源县| 枝江市| 平武县| 亚东县| 黑龙江省| 科技| 海南省| 绥化市| 满洲里市| 镇雄县| 高青县| 武宣县| 泗水县| 桃江县| 龙胜| 巴彦淖尔市| 蒲江县| 海兴县| 元江| 应城市| 海林市| 葫芦岛市| 太保市| 抚州市| 拉萨市| 闽清县| 盈江县| 福泉市| 尼玛县| 乐业县| 蒙山县|