首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#索引

一、概要 索引器使你可从语法上方便地创建类、结构或接口,以便客户端应用程序可以像访问数组一样访问它们。...在主要目标是封装内部集合或数组的类型中,常常要实现索引器。例如,假设有一个类 TempRecord,它表示 24 小时的周期内在 10 个不同时间点所记录的温度(单位为华氏度)。...通过在此类中实现索引器,客户端可采用 float temp = tempRecord[4] 的形式(而非 float temp = tempRecord.temps[4])访问 TempRecord 实例中的温度...索引器表示法不但简化了客户端应用程序的语法;还使类及其目标更容易直观地为其它开发者所理解。...param] { get { return array[param]; } set { array[param] = value; } } 二、应用场景 这里分享一下设计封装的角度使用索引

40910
您找到你想要的搜索结果了吗?
是的
没有找到

C# get 、set、索引

get 与 set ----   C#类的属性有公有属性(public)和私有属性(private)。如果直接将一个属性声明为public,则该类的任意实例可以随意获取或修改该属性的值,很不安全。....索引器的定义 ----   索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。声明与属性有些类似。...索引器定义的时候不带有名称,但带有 this 关键字,它指向对象实例。...); } } } 索引器的用途 ----   索引器的行为的声明在某种程度上类似于属性(property)。...就像属性,可使用 get 和 set 访问器来定义索引器。但是,属性返回或设置一个特定的数据成员,而索引器返回或设置对象实例的一个特定值。

99930

C# 8 - Range 和 Index(范围和索引

C# 7 的 Span C# 7 里面出现了Span这个数据类型,它可以表示另一个数据结构里连续相邻的一串数据,并且它是内存安全的。 例子: ? 这个图的输出是3,4,5,6。...C# 8 的Range类型 而C# 8里面我们可以从一个序列里面很简单的提取出来一个子范围组成新的序列。 看例子: ? 这里面使用了范围运算符“..”。...arr[2..4]表示把arr这个序列,从索引为2的元素一直到索引为4(但不包括索引4)的元素提取出来组成新的序列。所以结果就是3,4。...C# 8 的Index类型 Index 类型和 ^ 操作符 直接看例子: ? 这里使用了末尾运算符(Hat运算符) ^ 和 Index这个类型。...Index类型; 从头开始的索引是从0开始的 从尾部开始的索引是从1开始的,与序列的长度相关。

84120

【愚公系列】2021年11月 C#版 数据结构与算法解析(数组)

索引 index=2 的位置插入元素: 把索引index=2及其后面的所有元素往后移一格,为新元素腾出位置: 插入新元素 删除顺序存储结构的线性表中间位置元素 删除顺序存储结构的线性表中间位置的元素...一:数组 数组主要有Array,ArrayList,List Array 数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。...缺点:1、定义数组的时候需要指定数组的长度(过长会造成内存浪费、过短会导致程序异常System.IndexOutOfRangeException:“索引超出数组界限”) 2、插入和删除元素效率低、也比较麻烦...所以C#提供了ArrayList了来处理这些问题… ArrayList 使用大小会根据需要动态增加的数组。...NET Framework 2.0 推出了List List 表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。

70110

C#索引器的实现、索引器和属性的异同对比,这些技能你get到了嘛?

最近在用C#做开发的时候要用到索引函数,所以今天就在这里和小伙伴记录一下C#索引器的实现。 什么是索引器?...在C#中,索引器允许类或结构的实例按照和数组相同的方式进行索引索引器类似于属性,不同之处在于他们的访问采用参数,而实际上,索引器提供了一种访问类或结构的方法,即允许按照和类、结构或接口相同的方式进行索引...索引器提供了一种特殊的方法,来对类或结构体中的对象进行赋值和访问,要在类或结构上声明索引器,需要使用this关键字,索引器的定义格式如下: [修饰符] 数据类型 this[索引类型 index] {...索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数同时也可以是字符串。...索引器和属性的区别如下: 属性允许调用方法,如同它们是公共数据字段,索引器允许调用对象的方法,如同对象是一个数组。 属性可以通过简单的名称进行访问,索引器可以通过索引器进行访问。

95220

基础:C# try catch finally异常处理(Exception)

本文主要介绍C# try catch finally异常处理(Exception)。...1、C# Exceptions 执行C# 代码时,可能会发生不同的错误异常:程序员编写的编码错误,由于输入错误引起的错误或其他不可预见的情况。 发生错误时,C# 通常会停止并生成错误消息。...技术术语是:C# 将引发异常(引发错误)。 2、C# try catch try语句允许定义要执行的错误代码块。 如果在try块中发生错误,则catch语句允许定义要执行的代码块。...DivideByZeroException 除零异常 DllNotFoundException 找不到引用的DLL FormatException 参数格式错误 IndexOutOfRangeException 数组索引超出范围...IndexOutOfRangeException 当一个数组的下标超出范围时运行时引发。 NullReferenceException 当一个空对象被引用时运行时引发。

11510

手游热更新方案--Unity3D下的CsToLua技术

---------- 麻将项目架构 ====== [1.png] 其中ChinaMahjong-CSLua为C#工程,实现麻将项目的主要业务流程。翻译工程的输入是C#项目生成的dll文件。...ILSpy ===== ILSpy是一个开源.Net的反编译器,能把C#生成二进制文件转换为MSIL或者C#任选一种。因为项目C#程序集是团队开发,因此不需要破解加密算法和去壳等操作。...对IL Instructions以跳转指令为界限,划分了基本的block,block间构成树形结构: [12.png] TK_CSLua ======== TK_CSLua根据不同的语句块实现具体的翻译逻辑...,比如将C#中的while循环,生成Lua里面的while-end逻辑等。...: [20.png] C#中的对象在传给Lua时并不是直接把对象暴露给了Lua,而是在这个OjbectTranslator里面注册并返回一个索引,并把这个索引包装成一个userdata传递给Lua,并且设置元表

2.4K20
领券