Существует несколько использований этот ключевое слово в C#.
, можно избежать первого использования, не имея участника и локальные переменные с тем же именем в объеме, например, следующими общими соглашениями о присвоении имен и используя свойства (Pascal-регистр) вместо полей (Camel-регистр), чтобы не сталкиваться с локальными переменными (также Camel-регистр). В C# 3.0 поля могут быть преобразованы в свойства легко при помощи автореализованные свойства .
Что вы имеете в виду «Принимает только USB в качестве канала передачи данных» ?
HID - это стандартный класс устройства. It contains some standardized "Usage tables" (e.g. Mouse, Keyboard, Monitor control).
Most Operating Systems know how to handle HID and a number of Usage table. Connecting such a device will result with the OS exporting an appropriate device (Keyboard).
Since you can register with HID in user-space in Windows (for a new Class Driver implementation, one needs to create a full driver). Many manufacturers are "riding" HID's back to create custom protocols on top of it.
Does your application interact with a HID device that exports one of the standard usage tables ? (http://www.usb.org/developers/hidpage/)
Does your application register on top of HID and parse the reports itself ?
Does your application connect to 3d party driver already installed on your OS ?