c#索引器概念,c#中索引器的实现过程

c#索引器概念,c#中索引器的实现过程,浅谈C#索引器

本文主要介绍C#索引器,它使您能够按语法创建类、结构或接口,以便客户端应用程序可以像访问数组一样访问它们。编译器将生成一个项属性和适当的访问器方法。在主要目标是封装内部集合或数组的类型中,通常会实现索引器。我们来看看具体内容。

一.摘要二。应用场景

目录

索引器使您可以轻松地从语法上创建类、结构或接口,以便客户端应用程序可以像访问数组一样访问它们。编译器将生成一个项目属性(或一个命名属性,如果IndexerNameAttribute存在)和适当的访问器方法。在主要目标是封装内部集合或数组的类型中,通常会实现索引器。例如,假设有一个TempRecord类,它表示在24小时内记录的10个不同点的温度(以华氏度为单位)。该类包含一个float[]类型的temps数组,用于存储温度值。通过在此类中实现索引器,客户端可以以float temp=tempRecord[4]的形式访问TempRecord实例中的温度,而不是float temp=tempRecord.temps[4]。索引器符号不仅简化了客户端应用程序的语法;这也使得该类及其目标更容易被其他开发人员直观地理解。

语法声明:

public int this[int param]

{

get { return array[param];}

set { array[param]=value;}

}

一、概要

这里分享一下用索引器设计封装的角度。场景是一个封装了redis的助手类。在此之前,我们先来看一个简单的官方例子。

使用系统;

类SampleCollectionT

{

//声明一个数组来存储数据元素。

private T[]arr=new T[100];

//定义索引器以允许客户端代码使用[]表示法。

public T this[int i]

{

get { return arr[I];}

set { arr[I]=value;}

}

}

班级计划

{

静态空干管()

{

var string collection=new SampleCollectionstring();

stringCollection[0]='Hello,World ';

控制台。WriteLine(string collection[0]);

}

}

//该示例显示以下输出:

//你好,世界。

redisHelper类的封装(伪代码),好处是不用大费周章设置Redis的db号。

公共类RedisHelper

{

私有静态只读object _ lock obj=new object();

私有静态RedisHelper _ instance

private int dbNum

private RedisHelper() { }

公共静态RedisHelper实例

{

得到

{

if (_instance==null)

{

锁定(_lockObj)

{

if (_instance==null)

{

_ instance=new redis helper();

}

}

}

返回实例;

}

}

public RedisHelper this[int dbid]

{

得到

{

dbNum=dbid

还这个;

}

}

公共空字符串集(字符串内容)

{

控制台。WriteLine($ ' string set to redis db { dbNum },input{ content }。);

}

}

调用:

Redishelper.instance [123]。Stringset(“测试数据”);

运行效果:

关于C#索引器的这篇文章到此为止。有关C#索引器的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: