Descriptors are deputy classes. IDS peak uses this concept for all modules that can be opened (Device, Interface, System). Descriptors make it possible to get information even if the corresponding module has not yet been opened. The functions of the opened modules are only available when the module has really been opened. This reduces errors in module handling.
| // device descriptor for the first cameraauto deviceDescriptor = deviceManager.Devices().at(0);
 
 // open first camera by calling the open function of the device descriptor
 auto device = deviceDescriptor->OpenDevice(peak::core::DeviceAccessType::Control);
 | 
| // device descriptor for the first cameravar deviceDescriptor = deviceManager.Devices()[0];
 
 // open first camera by calling the open function of the device descriptor
 var device = deviceDescriptor.OpenDevice(DeviceAccessType.Control);
 | 
| # device descriptor for the first cameravar deviceDescriptor = deviceManager.Devices()[0]
 
 # open first camera by calling the open function of the device descriptor
 var device = deviceDescriptor.OpenDevice(peak.core.DeviceAccessType.Control);
 |