public DigitalChannel this[DigitalChannelsEnum index]
 {
     get
     {
         return(_channels[(int)index]);
     }
 }
        public DigitalChannel(DigitalChannelsEnum Channel, ref AgilentU254x Driver)
        {
            int width = 0;

            switch (Channel)
            {
            case DigitalChannelsEnum.DIOA:
            {
                _channelName = ChannelNamesEnum.DIOA;
                width        = 8;
            } break;

            case DigitalChannelsEnum.DIOB:
            {
                _channelName = ChannelNamesEnum.DIOB;
                width        = 8;
            } break;

            case DigitalChannelsEnum.DIOC:
            {
                _channelName = ChannelNamesEnum.DIOC;
                width        = 4;
            } break;

            case DigitalChannelsEnum.DIOD:
            {
                _channelName = ChannelNamesEnum.DIOD;
                width        = 4;
            } break;

            default:
                throw new ArgumentException();
            }

            _driver = Driver;

            var initDirection = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut;

            _digitalChannel           = Driver.Digital.Channels.get_Item(_channelName);
            _digitalChannel.Direction = initDirection;

            //Marshal.ReleaseComObject(initDirection);

            _bitArray = new DigitalBit[width];
            for (int i = 0; i < width; i++)
            {
                _bitArray[i] = new DigitalBit(this, i);
            }
        }
        public DigitalChannel(DigitalChannelsEnum Channel, AgilentU254xClass Driver)
        {
            int width = 0;
            switch (Channel)
            {
                case DigitalChannelsEnum.DIOA:
                    {
                        _channelName = ChannelNamesEnum.DIOA;
                        width = 8;
                    } break;
                case DigitalChannelsEnum.DIOB:
                    {
                        _channelName = ChannelNamesEnum.DIOB;
                        width = 8;
                    } break;
                case DigitalChannelsEnum.DIOC:
                    {
                        _channelName = ChannelNamesEnum.DIOC;
                        width = 4;
                    } break;
                case DigitalChannelsEnum.DIOD:
                    {
                        _channelName = ChannelNamesEnum.DIOD;
                        width = 4;
                    } break;
                default:
                    throw new ArgumentException();
            }
            _driver = Driver;
            Driver.Digital.Channels.get_Item(_channelName).Direction = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut;

            _bitArray = new DigitalBit[width];
            for (int i = 0; i < width; i++)
            {
                _bitArray[i] = new DigitalBit(this, i);
            }
        }