// The old way private static void TypeCastingWithoutPatternMatching(Storage storage) { if (storage == null) { throw new ArgumentNullException(); } if (storage is UsbKey) { UsbKey usbKey = (UsbKey)storage; if (usbKey.IsPluggedIn) { usbKey.Unload(); Console.WriteLine("USB Drive Unloaded."); } else { throw new NotImplementedException(); } } else if (storage is Dvd) { } else { throw new NotImplementedException(); } }
// Pro účely Dema // Jinak zde by rozhodně byla lepší abstraktní metoda Eject na Storage public static void Eject_WithoutPatternMatching(Storage storage) { if (storage == null) { throw new ArgumentNullException(); } if (storage is UsbKey) { UsbKey usbKey = (UsbKey)storage; if (usbKey.IsPluggedIn) { usbKey.Unload(); Console.WriteLine("USB Drive Unloaded."); } } else if (storage is DVD) { DVD dvd = (DVD)storage; if (dvd.IsInserted) { // ... } } }
public void display(UsbKey usb) { if (!isLock) { stop(); usb.display(screen, source, player); } }
static void Main(string[] args) { var usb = new UsbKey(); TypeCastingWithoutPatternMatching(usb); TypeCastingWithPatternMatching(usb); PatternMathcingInSwitchStatement(usb); Console.ReadLine(); }
public void SetUsbKey() { retry: UsbKey _usbKeyDrive = new UsbKey(); UsbKeyDriveMessages _messages = new UsbKeyDriveMessages(); UsbKeyDriveErrorEnum _result; string _key = _usbKeyDrive.CreateKey(out _result); switch (_result) { case UsbKeyDriveErrorEnum.NoUsbKeyDrives: retry2: FormUsbKeyDrive _f = new FormUsbKeyDrive(); DialogResult _dr = _f.ShowDialog(); if (_dr == DialogResult.OK) { if (_f.CreateUsbKeyDrive) { _usbKeyDrive.CreateUSBKeyContainer(out _result); switch (_result) { case UsbKeyDriveErrorEnum.NoUsbDrives: case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionCreatingKeyDrive: DialogResult _mb = MessageBox.Show(_mainform, _messages.GetMessage(_result), "USBKey", MessageBoxButtons.OKCancel); if (_mb == DialogResult.OK) { goto retry2; } return; } } goto retry; } else { UsbKeyId = null; return; } case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionWritingKeyFile: MessageBox.Show(_messages.GetMessage(_result)); UsbKeyId = null; break; case UsbKeyDriveErrorEnum.Ok: UsbKeyId = _key; break; } ShowKey(); }
private void _Timer_Tick(object sender, EventArgs e) { UsbKey _usb = new UsbKey(); if (_usb.UsbKeyDrivePresent()) { CreateUsbKeyDrive = false; DialogResult = DialogResult.OK; Close(); } }
/// <param name="silent">Cancels on error without message</param> /// <returns></returns> public byte[] GetUsbKey(string id, bool silent, out bool canceled) { retry: UsbKey _usbKeyDrive = new UsbKey(); UsbKeyDriveMessages _messages = new UsbKeyDriveMessages(); UsbKeyDriveErrorEnum _result; byte[] _key = _usbKeyDrive.GetKey(id, out _result); switch (_result) { case UsbKeyDriveErrorEnum.Ok: canceled = false; return(_key); case UsbKeyDriveErrorEnum.NoUsbKeyDrives: case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionReadingKeyFile: case UsbKeyDriveErrorEnum.CannotFindKeyOnUsbKeyDrive: case UsbKeyDriveErrorEnum.UsbKeyRequiredToOpen: if (silent) { canceled = true; return(null); } DialogResult _mb = MessageBox.Show(_mainform, _messages.GetMessage(_result), "USBKey", MessageBoxButtons.OKCancel); if (_mb == DialogResult.OK) { goto retry; } canceled = true; return(null); } canceled = false; return(_key); }