C Sharp – die neusten Beiträge

Wie funktionieren Klassen in C#?

Hallo, ich habe große Verständniss Schwierigkeiten mit meinen momentanigen Thema in meinem IT Kurs. Wir machen aktuell C# und antscheind habe ich das Prinzip einer Klasse noch nicht ganz verstanden. Ich werde meinen Code unten rein packen, um Fragen geklärt zu bekommen.

Kontext zum Code

Ich soll im allgemeinen ein Programm schreiben, indem man 4 oder mehr Wiederstände miteinander verrechnet. Dazu soll eine Klasse Wiederstand erstellt werden. Eine Instanz der Klasse kann nur mit der Angabe des Widerstandswerts gebildet werden. Der Wert kann gelesen, aber nicht verändert werden. Instanzen der Klasse Widerstand können mit + addiert werden. Dann ergibt sich der Widerstand, als Gesamtwiderstand einer Reihenschaltung. Der Operator / berechnet den Gesamtwiderstand einer Parallelschaltung. Die Methode ToString() liefert den Widerstandswert als Text mit Einheit zurück. Dazu sollen wir zudem ein User Interface anlegen.

Meine Fragen in Bezug auf den Code:

  1. Wieso kann ich in Operatoren nur 2 Operatoren gleichzeitig überschreiben? Dazu soll ich ja mehrere Wiederstände beispielsweise in eine Reihenschaltung schalten. Den + operator überschreibe ich ja so, dass ich: R1 + R2 zusammen addieren kann. Das geht ja jedoch nur mit max: R1 + R2 + R3 und dann ist schluss. Die einziege Lösung, die mir da einfällt ist ein Array und eine Schleife zu benutzen.
  2. Als zusätzliche Lösung für mein 1 Problem, habe ich überlegt statt einen Operator zu überschreiben eine einfache Funktion anzulegen, die dies berechnet. Jedoch ist das nicht die Aufgabenstellung. Dazu meine Frage: Wieso keine Funktion benutzen sondern einen Operator überschreiben, wo liegt da der Sinn?
  3. Die Frage bezieht sich auf den Code hinter dem User Interface. Wie kann ich generell auf meine Klasse zugreifen und vom User eingebende Werte in meine Klassen Vabriable Wert schreiben? Muss ich dazu immer eine neue Klasse erstellen?
  4. Wie hängt der Operator mit der Vabriable Wert meiner Klasse zusammen? In den Operatoren habe ich ja Vabriablen wie R1 und R2. Wie werden also dort die verschiedenen Werte herrein geschrieben?

Hier mein Code: (ich kann den leider nur als Foto beilegen, da es sonst die Zeichengrenze überschreitet)

Vielen Dank an jeden, der sich die Geduld und Zeit nimmt mir zu helfen, da ich bald eine Klausur schreibe und schon ein bisschen Verzweifelt bin!

Bild zum Beitrag
C Sharp

Berufseinstieg in meiner aktuellen Lage sehr schwer was tun?

Hallo zusammen, ich hoffe euch geht es soweit gut :-)

Ich hätte eine Frage, die mir auf der Seele brennt, an die erfahrenen ITler. Eventuell kann mir ein/eine ITler/in einen Leitfaden oder Tipps geben, um attraktiver für den Arbeitsmarkt zu werden?

Kurz zu meinem Werdegang:

Ich habe kurz bevor die Corona-Pandemie losging meinen Job als Technischer Produktdesigner verloren (Vertragsbruch durch den Arbeitgeber) und durch die Pandemie keinen neuen Job gefunden, da die Unternehmen zu dem Zeitpunkt selbst Probleme hatten, ihr eigenes Personal zu halten. Nun stellte sich die Frage "wartest du die Pandemie ab oder machst du eine Umschulung?" Da zu dem Zeitpunkt (vor etwa 3 Jahren) kein Ende der Pandemie in Sicht war, entschloss ich mich, eine Umschulung zum "Fachinformatiker für Anwendungsentwicklung" zu machen.

Gesagt, getan. Leider war das Umschulungsunternehmen eines dieser schwarzen Schafe, die einfach schnelles Geld machen wollten, jedoch in keinster Weise ausgebildet haben. Dort bin ich durch die schriftliche Abschlussprüfung mangels theoretischen Wissens durchgefallen, sodass ich nach dem zweiten Jahr (Umschulung ging zwei Jahre) mich bei einem Unternehmen gemeldet habe, das mich als Azubi im dritten Lehrjahr eingestellt hat, und dort habe ich dann meine Ausbildung erfolgreich abgeschlossen. Jetzt war das Unternehmen leider eines, welches keine eigenen Entwickler hatte. Der Ausbilder sagte selbst, das letzte Mal als er programmiert hat, sind mindestens 10 Jahre her, bei seiner Umschulung damals, wodurch mein Mentor das Internet war.

Naja, Zähne zusammengebissen, habe ich mich in C# und WinForms eingearbeitet und einige Desktop-Apps geschrieben, um die Arbeit zu automatisieren von den Kollegen. (Einfache Programme wie Tabellen umsortieren, Artikel-Nummern mappen, neue Artikel-Nummern in die Datenbank übergeben). Nebenbei natürlich noch den ganzen IHK-Stoff angeeignet, wodurch ich über den Tag gearbeitet habe und nach Feierabend dann IHK-Prüfungen durchgearbeitet habe.

Mir ist bewusst, dass ich aktuell erfahrungstechnisch nicht auf dem Level eines Juniors bin, der einen Mentor/Ausbilder während der Ausbildungszeit hatte, jedoch bemühe ich mich, Neues zu lernen.

Seit meinem Abschluss im Januar 2024 suche ich nach einer Trainee-/Junior-Stelle. Leider erhalte ich nur Absagen mangels Erfahrung. Da ich während der Zeit nicht einfach nur vor mich hinvegetieren will, arbeite ich mich eigenständig mit Udemy-Kursen in die Tech-Stacks eines Frontend-Entwicklers ein. Bis jetzt HTML- und CSS-Kurs beendet und aktuell am JavaScript-Kurs dran. Mit meiner aktuellen Erfahrung habe ich mir dann eine Webseite "Portfolio" aufgebaut (HTML & CSS).

Mir ist bewusst, dass die Unternehmen wirtschaftlich handeln müssen und da nimmt man eben den Besten auf, jedoch muss es doch auch Chancen geben für Leute wie mich, die eben keinen Mentor hatten, der einem was gezeigt hat und trotzdem gewillt sind, alles zu geben.

Tipps, HTML, JavaScript, Berufseinstieg, C Sharp, Mentoring, Webentwicklung, Junior, Fachinformatiker Anwendungsentwicklung, Appentwicklung, Trainee-Programm, WinForms

Warum kann ich den Typ "InputManager" in Unity nicht nutzen ohne Error?

Hallo an alle,

ich bin sehr neu im Bereich Spieleentwicklung mit Unity und möchte ein simples Spiel programmieren, in dem man verschiedene Räume gestalten kann. also hab ich mir ein Tutorial herausgesucht ( https://www.youtube.com/watch?v=l0emsAHIBjU&list=PLcRSafycjWFepsLiAHxxi8D_5GGvu6arf ) in dem dies erklärt wird. Bei 3:47 benutzt er den Typ "InputManager" im zweiten SerializeField.

Wenn ich jedoch das Script so kopiere wie er es im Video schreibt, zeigt mir Unity einen Fehler bei "InputManager" an. Da er im Video sagt, dass er das alte Input System nutzt hab ich dieses auch eingestellt.

Da ich nicht wirklich viel Ahnung von dem habe was er da schreibt, hab ich im Internet nach einer Lösung gesucht, doch scheinbar nutzt niemand diesen Typ. Vielen Dank im Voraus für die Antwort

P.S.: Ich habe ein Bild von Visual Studio eingefügt in dem auch der Error zu sehen ist.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class PlacementSystem : MonoBehaviour
{
    [SerializeField]
    private GameObject mouseIndicator;
    [SerializeField]
    private InputManager inputManager;


    private void Update()
    {
        Vector3 mousePosition = inputManager.GetSelectedMapPosition();
        mouseIndicator.transform.position = mousePosition;
    }
}
Bild zum Beitrag
Software, C Sharp, Code, Error, Fehlerbehebung, Programmiersprache, Spieleentwicklung, Unity 3D, Visual Studio, Fehlermeldung, input, Unity

Könnt ihr mir bei meinem Skript helfen?

Hallo, ich habe die letzten Stunden ein Skript programmiert, aber es funktioniert nicht. Mir wird GetComponent<ShootingAi> falsch angezeigt. Die letzten Male hat es noch funktioniert, aber jetzt nicht mehr.

Hier ist das Skript. Der Fehler ist bei // RayCast:

using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using UnityEngine;
using TMPro;

public class GunSystem : MonoBehaviour
{
  // Werte
  public int damage;
  public float timeBetweenShooting;
  public float spread;
  public float range;
  public float reloadTime;
  public float timeBetweenShots;
  public int magazineSize;
  public int bulletsPerTap;
  public bool allowButtonHold;
  private int bulletsLeft;
  private int bulletsShot;

  // Bool
  bool shooting;
  bool readyToShoot;
  bool reloading;

  // Referenz
  public Camera fpsCam;
  public Transform attackpoint;
  public RaycastHit rayHit;
  public LayerMask whatIsEnemy;

  // Grafik
  public GameObject muzzleFlash;
  public GameObject bulletHoleGraphic;
  public float camShakeMagnitude;
  public float camShakeDuration;
  public TextMeshProUGUI text;

  private void Awake()
  {
    bulletsLeft = magazineSize;
    readyToShoot = true;
  }

  private void Update()
  {
    MyInput();
    text.SetText(bulletsLeft + "/" + magazineSize);
  }

  private void MyInput()
  {
    if (allowButtonHold)
    {
      shooting = Input.GetKey(KeyCode.Mouse0);
    }
    else
    {
      shooting = Input.GetKeyDown(KeyCode.Mouse0);
    }

    if (Input.GetKeyDown(KeyCode.R) && bulletsLeft < magazineSize && !reloading)
    {
      Reload();
    }

    // Shoot
    if (readyToShoot && shooting && !reloading && bulletsLeft > 0)
    {
      bulletsShot = bulletsPerTap;
      Shoot();
    }
  }

  private void Shoot()
  {
    readyToShoot = false;
    // Spread
    float x = Random.Range(-spread, spread);
    float y = Random.Range(-spread, spread);

    // Calculate Direction with Spread
    Vector3 direction = fpsCam.transform.forward + new Vector3(x, y, 0);

    // RayCast
    if (Physics.Raycast(fpsCam.transform.position, direction,  out rayHit, range, whatIsEnemy))
    {
      Debug.Log(rayHit.collider.name);

      if (rayHit.collider.CompareTag("Enemy"))
      {
        rayHit.collider.GetComponent<ShootingAi>().TakeDamage(damage);
      }
    }

    // Graphics
    Instantiate(bulletHoleGraphic, rayHit.point, Quaternion.Euler(0, 180, 0));
    Instantiate(muzzleFlash,attackpoint.position, Quaternion.identity);

    bulletsLeft--;
    bulletsShot--;

    Invoke("ResetShot", timeBetweenShooting);

    if (bulletsShot > 0 && bulletsLeft > 0)
    {
      Invoke("Shoot", timeBetweenShots);
    }
  }

  private void ResetShot()
  {
    readyToShoot = true;
  }

  private void Reload()
  {
    reloading = true;
    Invoke("ReloadFinished", reloadTime);
  }

  private void ReloadFinished()
  {
    bulletsLeft = magazineSize;
    reloading = false;
  }
}

Ich komme echt nicht mehr weiter und bräuchte etwas Hilfe.

C Sharp, Visual Studio, Unity

An alle C# & Visual Studio Programmierer?

Hey Developers,

hier mal etwas Hate mit einer wichtigen Frage.

Ich versuch zurzeit ASP.Net Core mit C# für Web Backend zu lernen. Ich kann bisher HTML, CSS, JavaScript, React, Python (Django) und etwas Java (Spring Boot) sowie etwas C++ (Arduino).

Das war alles ganz entspannt zu lernen, aber C# mit Visual Studio gibt mir den Rest, ich schaffe es einfach nicht ein Projekt zu erstellen.

Mein Problem dabei ist, dass alle Dokus und YT Videos auf "vorgefertigte" Projektvorlagen setzten, allerdings schein Microsoft durchgehend an der UI von Visual Studio und an den Vorlagen etwas zu ändern und das macht mich nach meinem 20. Anlauf wahnsinnig. Egal welches Video ich anschauen (selbst wenn es nur 6 Monate alt ist) das komplette Projekte hat im Video eine ganz andere Struktur (und ja ich habe genau die selbe Vorlage mit der selben Version von .NET) und wenn ich halt keine Ahnung von der Umgebung habe kann ich das auch schlecht irgendwie nachbauen.

Daher mal ne Frage: Mach ich hier etwa irgendwas falsch (ne falsche Einstellung im Installer) oder ändert Microsoft wirklich alle paar Monate etwas an der Umgebung oder an Visual Studio?

Ich stelle mir das später auch einfach nur nervig vor, wenn man mal die Sprache & Umgebung kann, aber bei jedem neuem Projekt eine andere Projektstruktur hat.

Nutzt ihr die Vorlagen überhaupt, oder macht das einfach nur jeder, um seine Videos einfacher zu halten?

Erstellt ihr bei einem neuem Projekt einfach ein leeres .NET Projekt und erstellt dort selbst die Grundstruktur, oder verwendet ihr wirklich die vorgefertigten Projekte wie z.B. "React and ASP.NET Core" (welche euch eine Wetter-Seite erstellt) und löscht dann erstmal sämtlichen Code von der Wetter-Seite aus den Dateien und fangt dann mit eurem Projekt an?

ASP.NET, C Sharp, Programmiersprache, Visual Studio

Welche Programmiersprache als Quereinsteiger für das Berufsleben?

Hallo,

Die Frage hier geht explizit an Programmierer, die idealerweise schon ein Job haben.

ich wollte fragen welche Programmiersprache gut als Quereinsteiger geeignet ist um in das Berufsleben durchzustarten.

Ich beherrsche mittlerweile etwas von Phyton und SQL.

Es gibt ja YouTuber oder Webseiten die dir versprechen in einigen Monaten in deren Kurs schon eine Arbeitsstelle zu finden, natürlich gegen Bezahlung.

Aber ich will es eigenständig schaffen, deshalb meine Frage:

Welche Programmiersprache ist gut geeignet um in kurzer Zeit ein Job auszuüben. Natürlich wird man in diesem kurzem Zeitraum nicht das ganze Know How wissen aber man sollte sich im Job weiterentwickeln. Natürlich weiß ich das ich dann nicht viel Geld bekommen werde.

Und mit welcher Programmiersprache sollte man im welchem Beruf einsteigen (z.B bei SQL kann man Daten Analyst werden.) Also was könnt ihr empfehlen.

Und kennt Ihr auch gute bücher oder YT kanäle?

Und was hattet Ihr schon für Erfahrungen im ersten Job, was war die erste Programmiersprache mit der Ihr euch beworben habt und wie war der Anfang als ihr gelernt hattet und der erste Tag als Programmierer im Job? Habt ihr Tipps an mich?

Zum Schluss noch: Bitte keine Unnötigen Kommentare abgegeben. Ich weiß es ist Zeitaufwendig, aber ich möchte denn Willen durchsetzen. Ich bin auch kein Scriptkiddi, ich will's wirklich erlernen. Ich antworte auch gerne auf eure Kommentare.

PC, Beruf, Lernen, Google, Job, Amazon, SQL, HTML, IT, Webseite, Java, JavaScript, C Sharp, Entwickler, Entwicklung, Programmiersprache, Python, Quereinsteiger, Laptop

C# Twitch Bedges auslesen?

Hallo, ich wollte in C# einen Twitch Bot porgrammieren, aber die auslesung funktioniert nicht. Falls sich das jemand mal anschauen kann, hier ist der Code:

using System;
using System.Linq;
using System.Text;
using Twitch_IRC;
namespace Twitch_IRC
{
public class irc_globaluserstate
{
public bool IsMod { get; private set; } = false;
public bool IsBroadcaster { get; private set; } = false;
public bool IsVip { get; private set; } = false;
public List<string> BadgesRaw { get; }
private string rawdata { get; }
public irc_globaluserstate(string rawdata)
{
this.rawdata = rawdata;
string[] tags = rawdata.Split(' ')[0].Remove(0, 1).Split(';');
foreach (string tag in tags)
{
string[] splittag = tag.Split('=');
if (splittag.Length >= 2)
switch (splittag[0].ToLower())
{
case "badges":
BadgesRaw = splittag[1].Split(',').ToList();
foreach (string badgeraw in BadgesRaw)
{
string badge = badgeraw.Split('/')[0];
switch (badge)
{
case "broadcaster":
IsBroadcaster = true;
Program.IsUserBroadcaster = true;
Console.WriteLine("Broadcaster");
break;
case "moderator":
IsMod = true;
Program.IsUserModerator = true;
Console.WriteLine("Moderator");
break;
case "subscriber":
break;
case "vip":
IsVip = true;
Program.IsUserVip = true;
Console.WriteLine("Vip");
break;
case "premium":
break;
}
}
break;
}
}
}
}
internal class Program
{
public static bool IsUserBroadcaster = false;
public static bool IsUserModerator = false;
public static bool IsUserVip = false;
//Main
static void Main(string[] args)
{
IRC_Controller.MessageRecieved += new Program().KeksCommand;
IRC_Controller.MessageRecieved += new Program().shoutoutCommand;
IRC_Controller controller = new IRC_Controller("gg265_Bot", "____", "gg265_live");
}
public static EventHandler<MessageSentArgs> MessageSent;
protected virtual void OnMessageSent(string message)
{
MessageSent?.Invoke(this, new MessageSentArgs(message));
}
//!Kekse
public void KeksCommand(object source, MessageRecievedArgs args)
{
if (args.message.Split(' ')[0].ToLower() == "!kekse")
OnMessageSent($"/me gibt @{args.username} 4 Kekse.");
}
//!shoutout <user>
public void shoutoutCommand(object source, MessageRecievedArgs args)
{
if (args.message.Split(' ')[0].ToLower() == "!shoutout")
{
Console.WriteLine(IsUserBroadcaster);
Console.WriteLine(IsUserModerator);
Console.WriteLine(IsUserVip);
if (IsUserBroadcaster || IsUserModerator || IsUserVip)
{
OnMessageSent($"/me SHOUTOUT AN @{args.message.Split(' ')[1]}!!");
}
}
}
}
class MessageSentArgs
{
public string message { get; }
public MessageSentArgs(string message)
{
this.message = message;
}
}
}

LG gg265

C Sharp, Code, Visual Studio

Meistgelesene Beiträge zum Thema C Sharp