ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Indexers(索引器)
1.A,示例(Sample) 返回顶部

“索引器”示例

本示例演示 C# 类如何声明索引器以提供对类的类似数组的访问。

安全说明

提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任。

在 Visual Studio 中生成并运行“索引器”示例

  1. 在“解决方案资源管理器”中,右击“索引器”项目并单击“属性”。

  2. 打开“配置属性”文件夹并单击“调试”。

  3. 在“命令行参数”属性中,输入 ..\..\Test.txt

  4. 单击“确定”。

  5. 在“调试”菜单中,单击“开始执行(不调试)”。

从命令行生成并运行“索引器”示例

  1. 若要编译示例程序,请在命令提示符处键入以下内容:

    csc indexer.cs
  2. 示例程序将反转作为命令行参数给出的文件中的字节。例如,若要反转 Test.txt 文件中的字节并查看结果,请发出下列命令:

    indexers Test.txt
    type Test.txt
  3. 若要将反转的文件更改回正常状态,请对同一文件再次运行该程序。

1.B,示例代码(Sample Code)返回顶部

1.B.1, Indexer.cs

// 版权所有(C) Microsoft Corporation。保留所有权利。
// 此代码的发布遵从
// Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
//
//版权所有(C) Microsoft Corporation。保留所有权利。// indexer.cs
// 参数:indexer.txt
using System;
using System.IO;// 将大文件当作字节数组
// 访问的类。
public class FileByteArray
{Stream stream;      // 包含用于访问// 该文件的基础流。
// 创建封装特定文件的新 FileByteArray。public FileByteArray(string fileName){stream = new FileStream(fileName, FileMode.Open);}// 关闭流。这应是// 结束前的最后一个操作。public void Close(){stream.Close();stream = null;}// 提供对文件的读/写访问的索引器。public byte this[long index]   // long 是 64 位整数
    {// 在偏移量 index 处读取一个字节,然后将其返回。get {byte[] buffer = new byte[1];stream.Seek(index, SeekOrigin.Begin);stream.Read(buffer, 0, 1);return buffer[0];}// 在偏移量 index 处写入一个字节,然后将其返回。set {byte[] buffer = new byte[1] {value};stream.Seek(index, SeekOrigin.Begin);stream.Write(buffer, 0, 1);}}// 获取文件的总长度。public long Length {get {return stream.Seek(0, SeekOrigin.End);}}
}// 演示 FileByteArray 类。
// 反转文件中的字节。
public class Reverse
{public static void Main(String[] args) {// 检查参数。if (args.Length != 1){Console.WriteLine("Usage : Indexer <filename>");return;}// 检查文件是否存在if (!System.IO.File.Exists(args[0])){Console.WriteLine("File " + args[0] + " not found.");return;}FileByteArray file = new FileByteArray(args[0]);long len = file.Length;// 交换文件中的字节以对其进行反转。for (long i = 0; i < len / 2; ++i) {byte t;// 请注意,为“file”变量建立索引会调用//  FileByteStream 类上的索引器,该索引器在文件中读取// 和写入字节。t = file[i];file[i] = file[len - i - 1];file[len - i - 1] = t;}file.Close();}
}

View Code

1.B.2,

1.C,下载地址(Free Download)返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/ylbtech/p/4197019.html

ylbtech-LanguageSamples-Indexers(索引器)相关推荐

  1. C#中的索引器(Indexers)

    前两天刚刚学习完了属性,这两天又搂完了索引器,发现两者非常的相似,但是相似之外还有一些不同之处.今天就来总结一下索引器--Indexers 索引器的作用及格式 索引器的作用就是能够使类或者结构体的实例 ...

  2. 索引器Indexers

    索引器Indexers C#引入了一个索引器(Indexers)的功能,它能让我们像处理数组一样处理对象.在C#社区中,我们又把它叫做"智能数组(smart arrays)".定义 ...

  3. c#中索引器是什么_C#中的索引器

    c#中索引器是什么 An Indexer is a special feature of C# to use an object as an array. If you define an index ...

  4. ylbtech-LanguageSamples-Indexers_2(索引器)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Indexers_2(索引器) 1.A,示例(Sample)返回顶部 Indexers_ ...

  5. 如何建立自己的Usenet索引器

    There are plenty of NZB Indexers out there such as NZB Matrix and NZBs(dot)ORG , but they only index ...

  6. 读CLR via C#总结(9) 索引器(有参属性)

    索引器,即访问器接受参数的属性.在C#中是以数组风格的语法来公开索引器的.所以这使得对象可按照与数组相似的方式进行索引. 一,定义索引器 internal class IndexerTest<T ...

  7. 《.Net框架程序设计》读书笔记 之 结构和索引器

    一:结构和索引器(又称含参属性) class classStruct {     struct MyStruct     {         public string[] strTest;      ...

  8. C#拾遗系列(4):索引器

    1. 概述 索引器允许类或结构的实例就像数组一样进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数.索引器在语法上方便您创建客户端应用程序可将其作为数组访问的类.结构或接口.索引器经常是在主 ...

  9. python indexerror_python – “IndexError:位置索引器超出范围”,当它们明显没有时

    这是我正在使用的一些代码的MWE.我通过切片和一些条件慢慢缩小初始数据帧,直到我只有我需要的行.每行五行实际上代表一个不同的对象,因此,当我减少一些事情时,如果每个五个块中的任何一行符合条件,我想保留 ...

  10. c#初学-索引器get和set的使用(泛型类)

    索引器允许类或结构的实例就像数组一样进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数. 在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索 ...

最新文章

  1. 原子操作类AtomicInteger详解
  2. Java并发编程(5):volatile变量修饰符—意料之外的问题(含代码)
  3. elasticsearch 条件去重_elasticsearch去重计数
  4. nyoj13-Fibonacci数
  5. 《HTML5实战》——1.4 其他API和规范
  6. memwatch内存泄露检测工具
  7. WebService初入
  8. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  9. 剑指offer面试题[30]-最小的k个数
  10. springmvc + excel代
  11. 太极计算机 审计厅,湖北省审计厅举办2010年春节联欢会
  12. 通过JS制作一个简易数码时钟
  13. 多线程等待/通知机制
  14. Swoole 结合TP5创建http服务
  15. 常用中国姓氏日文平假名对照表
  16. ajax data=text,jQuery ajax dataType值为text json探索分享
  17. ArcGIS制作样点图
  18. 休闲游戏合成植物打僵尸源码-H5+安卓+IOS三端源码
  19. 【W5500】STM32 H743驱动W5500进行UDP收发
  20. matlab:导入txt数据

热门文章

  1. 业界总结 | BERT的花式玩法
  2. 放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较...
  3. 看了这份《算法中文手册》笔记,就再也不怕字节了~
  4. 【BERT】源码分析(PART I)
  5. 详解依存树的来龙去脉及用法
  6. 20191228_Python语言课程设计
  7. leetcode—7.同向双指针—快慢指针题型python解答
  8. 机器学习基础算法30-贝叶斯网络理论
  9. python之show、hide、slidedonw、slideup方法实例
  10. 从零开始学建站-域名篇