C# Verständnisfrage

Gast #3055035
Lesenswert?

C# Verständnisfrage

1
C-Code
2
   public partial class mainForm : Form
3
        {
4
        public mainForm()
5
            {
6
            InitializeComponent();
7

8
            // ATmega32U4 example firmware uses VID=0x03EB and PID=0x2150
9
            theUsbDemoDevice = new usbDemoDevice(0x03EB, 0x2150); 
10

11
            // Add a listener for usb events int a = new int
12
            theUsbDemoDevice.usbEvent += new usbDemoDevice.usbEventsHandler(usbEvent_receiver);
13

14
            // Perform an initial search for the target USB device (in case
15
            // it is already connected as we will not get an event for it)
16
            theUsbDemoDevice.findTargetDevice();
17
            }
18

19
        // Create an instance of the USB reference device object
20
        private usbDemoDevice theUsbDemoDevice;      
21
        ...
22
        ...
23
        ...


Was bewirkt diese Zeile?
theUsbDemoDevice = new usbDemoDevice(0x03EB, 0x2150);

Ist das eine Art Konstruktor (Es wird VID und PID übergeben)? Ich habe 
so einen Synta noch nie gesehen.
Gast #3055041
Lesenswert?

Moin,


Hasso Plattner schrieb:
> Ist das eine Art Konstruktor (Es wird VID und PID übergeben)? Ich habe
> so einen Synta noch nie gesehen.

So ist es. Kontruktoren können auch Parameter haben, z.B. zur 
Initialisierung. Ist nicht so ungewöhnlich.

Vielleicht irritiert der Kommenar

>         // Create an instance of the USB reference device object
>         private usbDemoDevice theUsbDemoDevice;
>         ...

Hier wird nur die Instanz-Variable definiert und nicht die Instanz 
erzeugt.
Gast #3055075
Lesenswert?

Hasso P. schrieb:
> Aha. Danke.
> Ich war irritiert, weil, erstens der Konstruktor noch vor der
> Instanzierung steht, und zweitens, weil ich 'new' in diesem Kontext (als
> Newbie) noch nie sah.


hast du überhaupt schon mal C# quellcode gesehen?

jedes Gui element wird so angelegt

[c]
this.ButtonResetPos = new System.Windows.Forms.Button();
[\c]

und bei mir steht in jeder 4. Teile mindestens ein new drin.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren