注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

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

OC/C/C++ 水墨上仙 1177次浏览 已收录 手机上查看

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

// 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();
    } 
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C# 类如何声明索引器以提供对类的类似数组的访问。
喜欢 (0)
[开心洋葱]
分享 (0)
关于作者:
水墨上仙
……
加载中……