| | |
| | | public class IRegion : MemoryRegion, IMemoryRegion |
| | | { |
| | | /// <summary> |
| | | /// 标识对象是否已被释放 |
| | | /// </summary> |
| | | private bool _disposed = false; |
| | | |
| | | /// <summary> |
| | | /// 区域类型 |
| | | /// </summary> |
| | | public override string RegionType => "I"; |
| | |
| | | /// <returns>位状态(true/false)</returns> |
| | | public bool ReadBit(ushort byteOffset, byte bitOffset) |
| | | { |
| | | if (_disposed) |
| | | throw new ObjectDisposedException(nameof(IRegion)); |
| | | |
| | | if (bitOffset > 7) |
| | | throw new ArgumentOutOfRangeException(nameof(bitOffset), "位偏移必须在0-7之间"); |
| | | |
| | |
| | | /// <param name="value">位值(true/false)</param> |
| | | public void WriteBit(ushort byteOffset, byte bitOffset, bool value) |
| | | { |
| | | if (_disposed) |
| | | throw new ObjectDisposedException(nameof(IRegion)); |
| | | |
| | | if (bitOffset > 7) |
| | | throw new ArgumentOutOfRangeException(nameof(bitOffset), "位偏移必须在0-7之间"); |
| | | |
| | |
| | | { |
| | | _lock.ExitWriteLock(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 释放资源 |
| | | /// </summary> |
| | | /// <param name="disposing">是否正在释放托管资源</param> |
| | | protected override void Dispose(bool disposing) |
| | | { |
| | | if (!_disposed) |
| | | { |
| | | if (disposing) |
| | | { |
| | | // 释放托管资源 |
| | | } |
| | | _disposed = true; |
| | | } |
| | | base.Dispose(disposing); |
| | | } |
| | | } |
| | | } |