最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談C#索引器

 更新時間:2021年11月03日 15:59:14   作者:老王Plus  
這篇文章主要簡單介紹C#索引器,索引器使你可從語法上方便地創(chuàng)建類、結(jié)構(gòu)或接口,以便客戶端應(yīng)用程序可以像訪問數(shù)組一樣訪問它們。編譯器將生成一個 Item 屬性和適當(dāng)?shù)脑L問器方法,在主要目標(biāo)是封裝內(nèi)部集合或數(shù)組的類型中,常常要實現(xiàn)索引器,下面我們一起來看看具體內(nèi)容吧

一、概要

索引器使你可從語法上方便地創(chuàng)建類、結(jié)構(gòu)或接口,以便客戶端應(yīng)用程序可以像訪問數(shù)組一樣訪問它們。編譯器將生成一個 Item 屬性(或者如果存在 IndexerNameAttribute,也可以生成一個命名屬性)和適當(dāng)?shù)脑L問器方法。在主要目標(biāo)是封裝內(nèi)部集合或數(shù)組的類型中,常常要實現(xiàn)索引器。例如,假設(shè)有一個類 TempRecord,它表示 24 小時的周期內(nèi)在 10 個不同時間點所記錄的溫度(單位為華氏度)。此類包含一個 float[] 類型的數(shù)組 temps,用于存儲溫度值。通過在此類中實現(xiàn)索引器,客戶端可采用 float temp = tempRecord[4] 的形式(而非 float temp = tempRecord.temps[4] )訪問 TempRecord 實例中的溫度。索引器表示法不但簡化了客戶端應(yīng)用程序的語法;還使類及其目標(biāo)更容易直觀地為其它開發(fā)者所理解。

語法聲明:

public int this[int param]
{
    get { return array[param]; }
    set { array[param] = value; }
}

二、應(yīng)用場景

這里分享一下設(shè)計封裝的角度使用索引器,場景是封裝一個redishelper類。在此之前我們先看一個簡單的官方示例。

using System;

class SampleCollection<T>
{
   // Declare an array to store the data elements.
   private T[] arr = new T[100];

   // Define the indexer to allow client code to use [] notation.
   public T this[int i]
   {
      get { return arr[i]; }
      set { arr[i] = value; }
   }
}

class Program
{
   static void Main()
   {
      var stringCollection = new SampleCollection<string>();
      stringCollection[0] = "Hello, World";
      Console.WriteLine(stringCollection[0]);
   }
}
// The example displays the following output:
//       Hello, World.

RedisHelper類的封裝(偽代碼),這樣用的好處是不用在需要設(shè)置redisdb號而大費(fèi)周章。

public class RedisHelper
{
    private static readonly object _lockObj = new object();
    private static RedisHelper _instance;
    private int dbNum;

    private RedisHelper() { }

    public static RedisHelper Instance 
    {
        get 
        {
            if (_instance == null)
            {
                lock (_lockObj)
                {
                    if (_instance == null)
                    {
                        _instance = new RedisHelper();
                    }
                }
            }
            return _instance;
        }
    }

    public RedisHelper this[int dbid] 
    {
        get
        {
            dbNum = dbid;
            return this;
        }
    }

    public void StringSet(string content) 
    {
        Console.WriteLine($"StringSet to redis db { dbNum }, input{ content }.");
    }
}

調(diào)用:

RedisHelper.Instance[123].StringSet("測試數(shù)據(jù)");


運(yùn)行效果:

到此這篇關(guān)于淺談C#索引器的文章就介紹到這了,更多相關(guān)C#索引器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 標(biāo)準(zhǔn)事件流實例代碼

    C# 標(biāo)準(zhǔn)事件流實例代碼

    這篇文章主要介紹了C# 標(biāo)準(zhǔn)事件流的實例代碼,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C# 動態(tài)調(diào)用WebService的示例

    C# 動態(tài)調(diào)用WebService的示例

    這篇文章主要介紹了C# 動態(tài)調(diào)用WebService的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11
  • c#協(xié)變和逆變實例分析

    c#協(xié)變和逆變實例分析

    這篇文章主要介紹了c#協(xié)變和逆變,以實例形式詳細(xì)講述了協(xié)變和逆變的原理與具體用法,具有一定的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-10-10
  • 詳解C#中的out和ref

    詳解C#中的out和ref

    本文主要介紹了out和ref的相關(guān)知識。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼

    c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼

    c#中的浮點型轉(zhuǎn)整形的舍取 四舍五入和銀行家舍入實現(xiàn)代碼,學(xué)習(xí)c#的朋友可以參考下
    2012-03-03
  • C#中winform窗體實現(xiàn)注冊/登錄功能實例(DBHelper類)

    C#中winform窗體實現(xiàn)注冊/登錄功能實例(DBHelper類)

    在編寫項目時,編寫了一部分關(guān)于登錄頁面的一些代碼,下面這篇文章主要給大家介紹了關(guān)于C#中winform窗體實現(xiàn)注冊/登錄功能(DBHelper類)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • C#實現(xiàn)把彩色圖片灰度化代碼分享

    C#實現(xiàn)把彩色圖片灰度化代碼分享

    這篇文章主要介紹了C#實現(xiàn)把彩色圖片灰度化代碼分享,用在一些特殊場合中,需要的朋友可以參考下
    2014-08-08
  • 基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    這篇文章主要為大家詳細(xì)介紹了基于NPOI用C#開發(fā)的Excel以及表格設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • WinForm窗體間傳值的方法

    WinForm窗體間傳值的方法

    這篇文章主要介紹了WinForm窗體間傳值的方法,包括了靜態(tài)變量、公共變量、共有屬性等方式,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • C#創(chuàng)建快捷方式文件和硬鏈接文件的方法

    C#創(chuàng)建快捷方式文件和硬鏈接文件的方法

    平常我們最常window桌面上點擊的左下角帶小箭頭的文件就是快捷方式了,大家都很熟悉它,在Windows系統(tǒng)中,硬鏈接(Hard Link)是一種文件系統(tǒng)中的連接方式,本文給大家介紹了C#創(chuàng)建快捷方式文件和硬鏈接文件的方法,需要的朋友可以參考下
    2024-11-11

最新評論

阜新| 改则县| 个旧市| 新源县| 两当县| 县级市| 沁水县| 云龙县| 阜平县| 原平市| 铁岭县| 茌平县| 庆阳市| 清镇市| 上犹县| 绥阳县| 偃师市| 宁德市| 汕头市| 棋牌| 灵寿县| 冕宁县| 平利县| 临泉县| 海兴县| 阿勒泰市| 兴仁县| 唐河县| 射阳县| 广宁县| 古丈县| 达尔| 荥经县| 府谷县| 吉隆县| 张掖市| 镇宁| 泰安市| 五大连池市| 内乡县| 溆浦县|