C#: Warum wird der Konstruktor nicht erkannt?

3 Antworten

Ein Konstruktor einer eigenen Klasse muss den gleichen Namen besitzen wie die Klasse selbst. Schau dir mal die Syntax von Konstruktoren an, siehe Constructors (Microsoft C# Programming Guide).

(...) A constructor is a method whose name is the same as the name of its type. (...)

Diese Unterstriche bei den Parametern macht man üblicherweise nicht. Wenn du zwischen Parameter des Konstruktors und dem Feld der Klasse unterscheiden möchtest, dann bietet es sich an, das Schlüsselwort this zu benutzen:

public class Node
{
  public bool walkable;

  public Vector3 worldPos;

  public Node(bool walkable, Vector3 worldPos)
  {
    this.walkable = walkable;
    this.worldPos = worldPos;
  }
}

Weil du den gleichen Klassen Namen nutzen musst.

public class NodeClass 
{     
  public bool walkable;     
  public Vector3 worldpos;

  public NodeClass(bool _walkable, Vector3 _worldpos)
  {
  
  }
}
Woher ich das weiß:Berufserfahrung

Der Konstruktor muss so heißen wie deine Klasse.

Und Tippfehler sind da sowieso ohne Ende drin.

UND an Konventionen hälst du dich offensichtlich auch nicht.