Die Variable a ist ein Array aus den drei Werten 1, 2 und 3. Die variable b ist eine Referenz zu der Variable a. Wenn a.push(4) ausgeführt wird, wird dem Array der Wert 4 angehangen. Der befehl console.log(ab.length) gibt die Anzahl der Elemente von b aus und, da b eine Referenz zu a ist ist die Lösung c) mit 4.

...zur Antwort

Du hast dort ein Semikolon das dort nicht hingehört. Semikolons kommen nur am ende eines 'Befehls' und nicht nach einer Deklarierung.

...zur Antwort

Python arbeitet mit dem einrücken von Zeilen. Da der Code in Zeile 17 nicht weiter eingerückt ist wird nicht erkannt das dieser zum else gehört.

Edit: Wird zwar nicht markiert, aber Zeile 15 müsste eigentlich auch weiter eingerückt sein damit diese im if steht und die Bedingung im if selber sieht auch nicht so ganz richtig aus.

...zur Antwort
Mein Code funktioniert nicht für eine Motorsteuerung über den Raspberry?

Ich versuche eine Steuerung für einen Miniatur-Kran mit einem raspberry zu bauen. Die Steuerung läuft über eine HTML-Website (Laut Chat-gpt ist die richtig, einfach fragen wenn ihr das Script dazu noch benötigt). Auf Putty kommt die Meldung, sobald ich auf dem Knopf drücke, das der GPIO-Pin kein Pin auf dem Raspberry ist.

Das ist das Code:

using Microsoft.AspNetCore.Mvc;
using System.Device.Gpio;
using System.Numerics;

namespace Kransteuerung_MEKW.Controllers
{
  [ApiController]
  [Route("[controller]")]
  public class CraneController : ControllerBase
  {
    private readonly GpioController _gpioController;
    private readonly ILogger<CraneController> _logger;

    public CraneController(ILogger<CraneController> logger)
    {
      _logger = logger;
      _gpioController = new GpioController(PinNumberingScheme.Board);
      var allOutputPinNumbers = new List<int>{ 3 };
      _logger.LogInformation("Setze alle GPIO Pins auf Output start");
      foreach (int pinNumber in allOutputPinNumbers)
      {
        var pin = _gpioController.OpenPin(pinNumber);
        pin.SetPinMode(PinMode.Output);
        pin.Write(PinValue.Low);
      }
      _logger.LogInformation("Setze alle GPIO Pins auf Output fertig");
       
    }
    
    [HttpGet()]
    public string Info()
    {
      return "Mögliche Posts: crane/turnLeftStart oder crane/turnLeftStop";
    }
    [HttpPost("turnLeftStart")]
    public void TurnLeftStart()
    {

      _logger.LogInformation("Kran dreht links start");
      
      var pin = _gpioController.OpenPin(3);
      pin.Write(PinValue.High);
    }

    [HttpPost("turnRightStart")]
    public void TurnRightStart()
    {
      _logger.LogInformation("Kran dreht rechts start");
       
      var pin = _gpioController.OpenPin(4);
      pin.Write(PinValue.High);
    }

    [HttpPost("turnLeftStop")]
    public void TurnLeftStop()
    {
      _logger.LogInformation("Kran dreht links stop");
      var pin = _gpioController.OpenPin(3);
      pin.Write(PinValue.Low);
    }

    [HttpPost("turnRightStop")]
    public void TurnRightStop()
    {
      _logger.LogInformation("Kran dreht rechts stop");
      var pin = _gpioController.OpenPin(4);
      pin.Write(PinValue.Low);
    }
  }
}
...zur Frage

In den Logs müssten die Exception geloggt sein die den Fehler verursacht. Wenn du zugriff auf die Konsolen Ausgabe hasst müsste die dort geloggt sein. Wenn du nicht auf die Konsole zugreifen kannst, dann nutze eine 3rd Party Lib wie Serilog um die Logs in eine Datei zu schreiben.

...zur Antwort

Kodierungen kannst du mit der Encoding Klasse ändern.

Um z.B einen ASCII Text in UTF-8 umzuwandeln kannst du folgendes machen:

byte[] asciiBytes = Encoding.ASCII.GetBytes("Ein ASCII string.");
string utf8String = Encoding.UTF8.GetString(asciiBytes);
...zur Antwort

Discord brauchst du nicht über ein Skript öffnen, da du in den Einstellungen von Discord unter Windows-Einstellungen > Discord öffnen dies aktivieren kannst.

Für solch ein Skript das Sachen automatisch öffnen soll ist es besser geeignet eine Batchdatei zu nutzen, da diese sich selbst beendet wenn sie fertig ist und auch die Prozesse dann offen lässt. Solch eine Batch kannst du machen in dem du eine Datei mit der Endung .bat erstellst und in diese befehle in folgendem Format (pro App die gestartet werden soll) einfügst.

start "C:\Program Files\Google\Chrome\Application\chrome.exe"

lg Suiram1

...zur Antwort

Eine Methode kann sich grundliegend in C# nie außerhalb einer Klasse befinden, allerdings befindet sich diese bei dir im Namespace. Heißt du musst diese in die Klasse MenuBar verschieben.

Gut gemeinter Ratschlag: Setz dich erst richtig mit C# auseinander und versuch dich an Konsolen Apps bevor du mit WPF anfängst. C# ist im Gegensatz zu Sprachen wie Python keine Sprache in der man als Anfänger schnell 'große' Ergebnisse erzielt.

...zur Antwort

Indem du eine Manifest zu der Website hinzufügst müsste das gehen. Im Head Bereich jeder Html Antwort der Seite muss sich folgender Tag befinden:

<link rel="manifest" href="manifest.json" />

Dieser Tag gibt an das sich das Manifest der Website unter dem Pfad /manifest.json befindet (du kannst das natürlich auch ändern).

Unter dem im Tag angegebenen Pfad muss sich die Manifest dann auch befinden. Ein Beispiel für solch eine Manifest sieht so aus:

{
  "name": "WebApp",
  "short_name": "WebApp",
  "start_url": ".",
  "display": "standalone",
  "background_color": "#fff",
  "description": "Eine WebApp.",
  "icons": [
    {
      "src": "favicon48.png",
      "sizes": "48x48",
      "type": "image/png"
    },
    {
      "src": "favicon72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "favicon96.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "favicon144.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "favicon168.png",
      "sizes": "168x168",
      "type": "image/png"
    },
    {
      "src": "favicon192.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ]
}

Mehr dazu oder was für Features eine Manifest noch bietet gibt es hier.

...zur Antwort
keinen einstigspunkt findet

das liegt daran das deine Main-Methode nicht statisch ist. Eine Main-Methode muss immer die statisch sein, darf nichts zurückgeben, muss Main heißen und darf nur string[] oder keine Parameter entgegen nehmen.

Zunächst sollte jede Klasse eine eigene Datei haben. Wenn nicht sorgt es zwar für keinen Fehler, allerdings ist es deutlich übersichtlicher.

Wegen der Funktionalität ist es glaube besser wenn du für die rechen Operationen keine eigene Klasse erstellst, sondern diese in der Main machst. Der Ansatz mit dem Switch-Statement ist schon richtig, allerdings benötigst du ja für jede Operation 2 zahlen, daher musst du diese nicht im case abfragen.

So könntest du es z.B. implementieren:

int num1 = int.Parse(Console.ReadLine());
int num2 = int.Parse(Console.ReadLine());

switch (rechenart)
{
    case "+":
        Console.WriteLine(num1 + num2);
        break;
    default:
        Console.WriteLine("Diese Rechenart gibt es nicht!");
        break;
}

Dort müssen nur noch die anderen Rechenarten (-, *, /) hinzugefügt werden und dann müsste es gehen.

...zur Antwort

Bei dem ersten Bild hast du nur die Einzelne Codedatei geöffnet. Du musst, allerdings das C# Projekt öffnen, dass kannst du machen indem du entweder die .sln-Datei oder die .csproj-Datei deines Projekts in Visual Studio öffnest oder indem du die Codedatei über Unity öffnest.

lg Suiram1

...zur Antwort

Im Codebehind von dem Fenster müsstest du ein Feld mit dem namen der Textbox haben und wenn du die Eigenschaft Text des Feldes setzt dann wird der Inhalt damit ersetzt. Wenn z.B. die Textbox text1 heißt dann kannst du den Inhalt so ändern:

text1.Text = "Hallo, Welt!";
...zur Antwort
DateTime uhrzeit = DateTime.Now;

So machst du eine Variable die die aktuelle Uhrzeit enthält. Weiter zählen tut diese, aber nicht. Jedes mal wenn du dir den Wert von DateTime.Now abrufst ist es der aktuelle. Du kannst diesen, aber auch mit .AddMinutes(1);, usw. editieren.

Hinweis: Es ist sinnvoller sich erst in die Sprach mit Tutorials, Bücher, Video und oder der Dokumentation einzuarbeiten anstatt für alles hier eine Frage zu stellen.

...zur Antwort

Die Fehlermeldung sagt aus, dass Keyboard nicht deklariert ist was heißt das diese wahrscheinlich nicht korrekt eingebunden wurde. Wenn du dir die Ausgabe etwas genauer anschaust wird dir folgendes auffallen:

Mehrere Bibliotheken wurden für "Keyboard.h" gefunden

Wie die Ausgabe bereits sagt gibt es mehrere Bibliotheken die eine Keyboard.h definieren und deswegen weis die IDE nicht welche gemeint ist. Am besten deinstallierst/löschst du alle Keyboard Libs und fügst nur die hinzu die du auch dafür brauchst.

...zur Antwort

Wenn das der als Textdargestellte Inhalt einer .exe oder .dll ist könnte man diesen mit dem passenden Dekompiler Dekompilieren. Dafür müsste man allerdings wissen welche Sprache/Engine genutzt wird und nur mit diesem Ausschnitt und diesen Zeichen geht das auch nicht.

Erklärung: Bei dem was du siehst handelt es sich nicht um Quellcode sondern um Maschienencode oder Bytecode. Quellcode wird beim kompilieren in Maschienencode kompiliert und wird somit zu einer ausführbaren .exe gemacht (trifft nicht auf alle Sprachen zu). Beim Dekompilieren wird dann der Maschienencode oder Bytecode in (halbwechs) lesbaren Quellcode umgewandelt.

...zur Antwort