第一篇 .NET高级技术之索引器
基础知识补充
索引 器
没有名字 ,索引器的内部本质 (ILSpy的IL模式下看)类型 this[参数]{get;set;}
可以是只读或者只写(在get或者set前加上private)
字符串是只读索引,因此不能对字符串中的某个字符进行从新赋值,即只能char ch = s[5];不能s[5]=‘a’。
开发中自己写的机会很少,一道面试题:C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数?答案:可以进行非数字索引,可以允许多个参数进行索引
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
MyIntIndex myIntIndex = new TestConsole.MyIntIndex();//整型索引
string name1 = myIntIndex[1];
Console.WriteLine(name1);
Hashtable ht = new Hashtable();
ht.Add("001", "chizi");
ht.Add("002", "dandan");
MyStringIndex myStringIndex = new TestConsole.MyStringIndex(ht);//字符串索引
string name2 = myStringIndex["001"];
Console.WriteLine(name2);
Console.ReadKey();
}
}
class MyStringIndex
{
private Hashtable ht;//字符串索引用到哈希表来存放键值对
public MyStringIndex(Hashtable ht)
{
this.ht = ht;
}
public string this[string key]
{
get
{
string name =(string)ht[key];
return name;
}
set
{
ht[key] = value;
}
}
}
class MyIntIndex
{
private static string[] name = { "dandan", "chizi", "jianguo" };
public string this[int index]
{
get
{
string n = name[index];
return n;
}
set
{
name[index] = value;
}
}
}
}
更多技术请关注
转载于:https://www.cnblogs.com/dullbaby/p/10910611.html
第一篇 .NET高级技术之索引器相关推荐
- C#【高级篇】 C# 索引器(Indexer)
C#学习汇总 - 总目录 C#[高级篇] C# 索引器(Indexer) 前言 一.语法 二.索引器(Indexer)的用途 三.重载索引器(Indexer) 总结 前言 索引器(Indexer) 允 ...
- 【高级内部资料】.NET数据批量写入性能分析 第一篇
[高级内部资料].NET数据批量写入性能分析 第一篇 说起数据的批量写入,相信大家应该不陌生了,那么我们本系列的文章不准备讲述如何来进行数据的批量写入,而是介绍常用的数据批量写入方法的性能分析. 同时 ...
- MySQL技术总结第一篇
(答辩完成,接下来一段时间会抓紧学习,月底回国.) 拿两三篇总结MySQL的知识点,补上之前的坑.这里第一篇主要讲粗略讲一下MySQL体系结构和存储引擎,通过对MySQL大体的认识,连带补充一些关于I ...
- mysql高级篇(二)mysql索引优化分析
mysql高级篇笔记 mysql高级篇(一)mysql的安装配置.架构介绍及SQL语句的复习. mysql高级篇(二)mysql索引优化分析. mysql高级篇(三)查询截取分析(慢查询日志).主从复 ...
- 技术小白成长之路 - 谷歌云端 GCP Cloud Engineering - 第一篇 - 核心架构 Core Infrastructure
谷歌云端 GCP Cloud Engineering Certificate - 第一篇 - 核心架构 Core Infrastructure 谷歌云端平台GCP简介 1. 谷歌云端平台GCP资源层次 ...
- 大数据技术原理与应用 第一篇 大数据基础
目录 第一章 大数据概述 一. 大数据时代 1.1 三次信息化浪潮 1.2 信息科技发展 1.3 数据产生方式的变革 1.4 大数据的影响 二. 大数据的概念 2.1 大数据的特征 2.2 大数据关键 ...
- Linxu内核模块开发入门(金荣的第一篇个人技术博客)
前言 第一次使用Markdown语法编辑的第一篇CSDN技术文章,内容为本人第一个内核模块的入门教程,如有不完善的地方,请大家多多批评指正,支持开放.自由.分享,谢谢大家. Linxu内核模块开发入门 ...
- 查询优化器内核剖析第一篇
查询优化器内核剖析第一篇 查询优化器内核剖析第一篇 查询优化器内核剖析第二篇:产生候选执行计划&执行计划成本估算 查询优化器内核剖析第三篇:查询的执行与计划的缓存 & Hint提示 查 ...
- C语言高级技术之--游戏属性修改器(背景故事)
前些天,由于看朋友在玩单机游戏仙剑3(这么早的游戏,早不完了),看得我实在太累,问他为什么不找修改器之类的,那样轻松一些,他的回答让我很无语,他说:"老是下到病毒木马,系统已经重装4-5次了 ...
最新文章
- 转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力
- vim介绍,vim颜色显示,vim一般模式下移动光标,vim一般模式下的复制、剪切和粘贴...
- Javascript操作table,tr,td和表格CSS样式设置小常识
- Linux网络编程 五种I/O 模式及select、epoll方法的理解
- mysql md5函数加密
- UITextView,UITextField 和UIAlertView 在ios8上 当pop时候出现闪bug
- 部署被测软件应用和中间件_使用FlexDeploy对融合中间件应用程序进行自动化软件测试...
- 基于Quartz.Net的任务管理平台开发(3) —— 任务管理平台
- ShellExecute的各种用法 [转帖于 2009-05-020 21:15]
- MYSQL数据库脱库写马写一句话
- 优秀的长截图标注工具:iShot for Mac
- python真好玩 pdf 下载_Python真好玩:教孩子学编程_PDF电子书
- springboot版的微信公众号,订阅号
- 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例
- 注意:QQ空间加密并不安全
- Android广播静态注册失效
- allegro输出gerber过孔盖孔
- PTA 7-152 百钱百鸡
- LeetCode 链表 队列 栈的问题
- C++重载相等运算符operator==的两种方式
热门文章
- 使用4G模块实现IOT_Python库中,如何使用jieba模块来实现古典名著《西游记》的分词...
- 计算机里为什么显示cpu主频高,cpu主频显示不对是什么原因怎么解决
- 电力版 力控7.1 电力版 授权 硬件狗 USB加密狗 分享 下载
- Jetpack Compose for Desktop: 里程碑1发布
- 谷歌chrome浏览器设置成深色(护眼)模式
- Flutter文本输入框-TextField
- 4.外部协作单位的组织与管理
- Android 科大讯飞开发相关
- 动态拼图怎么做?如何将多张动图拼接在一起?
- 【公众号技能+】添加白名单,允许其他公众号转载文章