xml地图|网站地图|网站标签 [设为首页] [加入收藏]
学习笔记,固定大小的缓存
分类:编程

有时要求把最新的N条记录前段时间存起来供应和必要要的时候调用,C#有未有指针,如何是好呢小编利用数组和byte字节整八个类:

既然选拔起来学c#言语,那我们就任何时候本身的节拍来呢。

目录和切块

    public class Buffer<T>
    {
        private T[] _TS;
        private byte _Index = 0;
        private int _Capcity;
        public Buffer(int capcity)
        {
            //将数组的大小设置成2的n次方
            while ((capcity & capcity - 1) != 0)
                capcity++;
            _TS = new T[capcity];
            _Capcity = capcity;
        }
        public void Write(T t)
        {
            _TS[_Index % _Capcity] = t;
            _Index++;
        }

        public IEnumerable<T> Read()
        {
            byte index = _Index;
            for (int i = 0; i < _TS.Count(); i++)
            {
                index--;
                yield return _TS[index % _Capcity];
            }
        }
    }

我先把“c#入门到精晓”这本书分了多个阶段:

  索引  是从0起始计数;当索引值为负数时,表示从最后一个因素(从右到左)起头计数

 解释一下:

1)底蕴知识

  切成块用于截取有个别范围内的要素,通过:来钦赐起头区间(左闭右开区间,满含侧面索引值对应的成分,但不饱含右测索引值对应的因素。

1.byte _Index=0;

2)主旨才干

  示例 hello world

_Index--; //=0xff

3)高档应用

  图片 1

_Index++;//=0

4)项目实战

 1 >>> "hello world"
 2 'hello world'
 3 >>> "hello world"[0]  #字符串字面值可直接用索引,也可声明变量
 4 'h'
 5 >>> a = "hello world"  #声明变量方式
 6 >>> a[0]   #左边数第一个  
 7 'h'
 8 >>> a[1:3] #左边数第二个开始,到第三个前结束 左边包括索引值对应的元素, 右边包括
 9 'el'
10 >>> a[3:]  #左边数第四个开始,直到末尾
11 'lo world'
12 >>> a[:5]  #从左边最开始到索引值为5的之前的所有元素
13 'hello'
14 >>> a[-1]  #右边第一个
15 'd'
16 >>> a[-3:-1] 
17 'rl'
18 >>>

应用byte的那个特点,写的时候++,读的时候--,不用构思边界,是还是不是相比较实惠。

作者们先起来率先阶段:幼功知识,我把这么些等级分了9个部分

字符串是意气风发种队列,系列基本都有上边这个操作

本文由澳门新葡亰手机版发布于编程,转载请注明出处:学习笔记,固定大小的缓存

上一篇:私有属性是不是不应该有,基础题目一 下一篇:django查询数据库无法过滤月份的解决,python实现
猜你喜欢
热门排行
精彩图文