C# Methode erfordert Rückgabetyp

3 Antworten

    public **void** Target (Image img, int points, int interval)
{
    this.points = points;
    this.img=img;
    time.interval=interval;
    time.Tick +=new EventHandler(time_Tick);
    time.Start();
}

in eine Methode gibtst du werte zurück. Das heist wenn du in einem Program mit zahlen arbeitest und eine lange rechnung hast die immer wieder vorkommt must du sie jedes mal schreiben. wenn du aber eine methode nimmst kannst sagen das sie in deinem Programm immer wieder die Variable nimmt . void gibt nichts zurück :)

lg

-fera-

PS sollte gehn habs aber nicht getestet kann ich dann später machen hab leider grad ziemlich viel um die ohren :S

Nein, public Target(....) ist der Konstruktor!!!!!

0
@CarolaA

Sorry hatte grad keinen überblick :S ich schau mir das am abend genauer an wenn das problem noch nicht gelöst ist :S

0
@feralun

Ok.

Ich habe den Blick schon dafür! (Bin beruflich Softwareentwicklerin und muss mich oft auf die Schnelle in andere Codes reinlesen! =D )

0
@CarolaA

Ah ok :D

ja naja ich brauchs auch in der arbeit aber wir steigen erst gerade darauf um dementsprechend brauch ich noch ein bissl xD

aber es wird langsam :D

0
@feralun

@feralun: Bei Fragen einfach bei mir melden! =)

0
@CarolaA

Oh danke :D

Werde ich :P Derzeit komme ich noch klar nur wenn ich was auf die schnelle machen muss bekomm ich immer stress xD und dann verhau ichs meistens xD

1
@feralun

Kommt mir total bekannt vor. Du kannst dir gar nicht vorstellen, wie oft ich am Anfang meinen eigenen Code nochmal ausbessern habe müssen! =)

0

Eine Funktion muss einen Rückgabetyp angeben. Der gibt an, von welchem Typ das Ergebnis der Funktion ist. Ein Stück weiter unten hast du ja diese Funktion:

void  time_Tick(object sender, EventArgs e)

"void" ist dabei der Rückgabetyp und sagt aus, dass die Funktion kein Ergebnis zurückgibt. Wenn das Ergebnis ein Integer ist, müsste dort eben "int" stehen, wenn es ein String ist, müsste dort "String" stehen, usw.

Wenn du da also eine Funktion machst, müsstest du einen Rückgabetyp einfügen:

public **void** Target (Image img, int points, int interval)

In dem Fall noch der Hinweis: Meines Wissens nach, schreibt man Methoden-Namen in der Regel klein.

Da die "Funktion" so heißt wie deine Klasse, würde ich aber mal spontan vermuten, dass es sich dabei um den Konstruktor der Klasse handeln soll. Falls das der Fall ist, gehört da kein Rückgabetyp hin. Stattdessen ist wichtig, dass Klasse und Konstruktor den gleichen Namen haben. Das heißt: Entweder du schreibst in beiden Fällen "Target" oder in beiden Fällen "target".

  1. Variablen von Methoden und Variablen der Klassen sollten keinen gleichen Namen haben => Verwechslungsgefahr

  2. Beim EventHandler fehlt dir auch noch eine Angabe

  3. Wo rufst du den

Konstruktor Target(image, 10, 10) auf (können auch andere Werte sein, dient nur als Beispiel)

4.Klassenname und Konstruktorname müssen komplett gleich geschrieben werden, dass heißt

class Target und public Target(....)

oder

class target und public target(...)

MfG CarolaA.

Bei weiteren Fragen kannst du dich ruhig bei mir melden! (beruflich arbeite ich als Softwareentwicklerin im Bereich C#)

0
  • zu 1. @WhiteRainbow: In diesem Fall meinte CarolaA die Parameter. Ansonsten hat sie recht, lokale Variablen (nicht nur Methodenvariablen; schließlich können Variablen auch innerhalb von bspw. Schleifen erstellt werden)/Parameter sollten nicht die gleiche Bezeichnung haben wie Klassen-/ statische Variablen.
  • zu 2. Welche Angabe soll denn fehlen? Das ist valider Code (den Eventhandler betreffend)
  • zu 3. Der Konstruktor kann auch von außerhalb der Klasse aufgerufen werden
  • zu 4. Das sollte die Lösung des Problems sein.
2

Java Methode einer anderen klasse bentuzen

Ich hab vollgendens problemm ich versuche die methode wuerfeln() aus der klasse ZweiWuerfel in der klasse Spieler1 zu verwenden und ich bekomme immer den error: "cannot find symbel- method maybe you meant wuefeln()" - Ja ich meine wuerfeln habs aber auch korrekt geschrieben, danke für die hilfe Zwei würfel: public class ZweiWuerfel {

private int wuerfel1;
private int wuerfel2;
public int ergebniss;

public ZweiWuerfel() { ergebniss = 0; wuerfel1 = 0; wuerfel2 = 0;

}
public int wuerfeln() 
{
    wuerfel1 = (int)(6*Math.random())+1;
    wuerfel2 = (int)(6*Math.random())+1;

     if (wuerfel1 >= wuerfel2)ergebniss = wuerfel1 *10 + wuerfel2;
      if (wuerfel1 < wuerfel2) ergebniss = wuerfel2 *10 + wuerfel1;
    return ergebniss;
}

}

Spieler 1: public class Spieler1 { private int ergebnissSp1; private int luegeSp1; private boolean luege; public ZweiWuerfel wuerfeln; public ZweiWuerfel Ergebniss;

public Spieler1() {ergebnissSp1 = 0; luege = false;

}

public void werfen() { wuerfeln(); }

}

...zur Frage

Wie mehrere Methoden in Java

Hallo zusammen,

und zwar lern ich gerade Java und hab mir en Programm geschrieben, dass einen Roulett-Tisch simulieren sollte. jetzt kahm mein ausbilder her und hat mir lauter Methoden über mein Programm geschriebn, jetzt wei´ß ich nicht, wie ich das machen muss oder was ich da überhaupst machen soll, kann mir jemand helfen ???

Entwicklungsumgebung: Eclipse

import java.util.*;

public class Roulette {

 private static boolean askForHighRisk(){
      return false;
  }
  private static boolean askForQuit(){
      return true;
  }
  private static boolean askBetOnEven(){
      return true;
  }
  private static int askSetOnNumber(){
    return 0;

  }
  private static int askForStake(int minLimit, int maxLimit){
      return 0;
  }
  private static int rollBall() {
      return 1;
  }  

  public static void main(String[] args) {

  System.out.printf("Bitte gib dein Startgeld zwischen 10€ und 10.000€ ein (in 10€ Schritten)!!!\n");

  Scanner startMoney = new Scanner (System.in);
  int  startmoney = startMoney.nextInt();
  int modulo = startmoney%10;
  int realstartmoney = 0;
  int zahlintager;
  String A= "A";
  String B= "B";
  String ja = "ja";
  String nein = "nein";


  //set the startmoney, only 10€ steps between 10 -10 000 
  if (startmoney > 10000) {
    startmoney =10000;
  }

  if (startmoney != 0) {
    realstartmoney = startmoney-modulo;
  }
  else {
    realstartmoney = startmoney;
  }

System.out.println("Sie haben jetzt " + realstartmoney + "€ auf ihrem Konto");

//loop till no money
  while (realstartmoney >0) {

    //set random int number
    int generator = (int) (Math.random()*36);      



  System.out.println("Wollen sie mit einer \"A (hohen)\" oder einer \"B (niedrigen)\" Chance spielen?");



  String choiceAorB = new String();
  Scanner AorB = new Scanner(System.in);
  choiceAorB = AorB.next();
  int geradeungerade = generator % 2;       

  if (choiceAorB.contentEquals(A)) {
    System.out.println("wollen sie auf \"A (gerade)\" oder \"B (ungerade)\"setzen");


    String choiceBorA = new String();
    Scanner BorA = new Scanner(System.in);
    choiceBorA = BorA.next();

    System.out.println("Wie viel wollen sie setzen????");

    Scanner setMoney = new Scanner(System.in);
    int nosetmoney = setMoney.nextInt();
    int setmoney = 0;
    int modulo2 = nosetmoney%10;

    if (modulo2 != 0) {
      setmoney = nosetmoney-modulo2;
    }
    else {
      setmoney = nosetmoney;
    }

    if (setmoney < 10) {
      System.out.println("Dein Einsatz wurde auf 10€ gesetzt");
      setmoney =10;
    }
          if (setmoney> realstartmoney) {
            System.out.println("So viel Geld h
...zur Frage

Wiso funktioniert das bluej schnick schnack schnuck programm nicht

habe diesen quellcode erstellt:

import java.util.Random; public class STEIN { private int schere; private int stein; private int papier; private int j; private int i; private int S1; private int S2;

public STEIN()
{

    i=0;
    j=0;
    schere=1;
    papier=2;
    stein=3;
}


public void SPIEl()
{
  Random zufall= new Random();

  while (S1==S2)
  {
   int S1= zufall.nextInt(3);
     int S2= zufall.nextInt(3);
  }


  while ( S1!=S2||i<3 ||j<3)
   {
     int S1= zufall.nextInt(3);
     int S2= zufall.nextInt(3);


     if(S1==2)
      {
          if(S2==3)
        {i=i+1;
        }
        else 
        {j=j+1;
        }
    }
        if(S1==3)
        {if (S2==2)
            {j=j+1;
            }
            else 
            { i=i+1;
            }
        }
     else 
     {if (S2==2)
         {i=i+1;
            }
     else 
     j=j+1;
    }

    }
    if (i==3)
     {System.out.println("Spieler 1 gewinnt");
     }
    else if (j==3)
    {System.out.println("Spieler 2 gewinnt");
    }

    } 
}
...zur Frage

Java Dreieck aus Sternen in eigener Methode?

Hallo,

ich hab die Aufgabe in Java ein Dreieck aus Sternen auszugeben und dass in einer eigenen Methode. Da ich keine Ahnung habe wie ich das in eine Methode + der main-Methode machen kann hab ich es erstmal nur in der main-Methode gemacht:

package übung6;

import java.util.Scanner;

public class DreieckausSternen {

private static Scanner scan;

public static void main (String[] args){

scan = new Scanner (System.in);
System.out.print("Geben sie die Anzahl der Zeilen an: ");
int x = scan.nextInt();

int leer = x-1;

for (int i = 1;i <= x;i++){
    for (int n = 1;n <= leer;n++){
        System.out.print(" ");
    }
    leer--;
    
    for (int n = 1;n <= i ;n++)
        System.out.print("*"+" ");
        System.out.println();
}

}

}

Kann mir jemand da weiterhelfen?

EDIT:

Die Aufgabenstellung:

Schreiben Sie eine Methode, die ein Dreieck aus Sternen ausgibt. Die Methode soll ein Argument entgegennehmen, das festlegt, wie viele Zeilen ausgegeben werden sollen. In der rechten Abbildung sehen Sie eine Beispielausgabe für 5 Zeilen. Beachten Sie bitte dass zwischen den einzelnen Sternen ein Leerzeichen ausgegeben wird.

...zur Frage

C# Problem mit auslesen einer XML Datei

Guten Morgen,

ich arbeite gerade an einem Projekt das mit XML Dateien arbeiten soll,

nun komm ich einfach nicht drauf wie ich diese Auslesen soll, alle Anleitungen sind nur für

    <root>
        <child1/>
        <child2/>
        <child3/>
    </root>

Mein Aufbau ist allerdings

<Persons>
  <Person>
    <Name>Hans Sarpei</Name>
    <Sex>Male</Sex>
    <DOB>01.01.1970</DOB>
    <Status>Unknown</Status>
    <Grades>
      <Grade>Realschule</Grade>
      <Grade>Buisness School</Grade>
    </Grades>
    <Employee>False</Employee>
    <Employed>None</Employed>
    <Function>None</Function>
    <CriminalRecords>
      <CriminalRecord>None</CriminalRecord>
    </CriminalRecords>
  </Person>
</Persons>

wie kann ich eine solche XML auslesen ?

PS: die Person Klasse sieht folgendermaßen aus.

class Person
    {
        public string Name {get;set;}
        public string Sex { get; set; }
        public string DOB { get; set; }
        public string Status { get; set; }
        public List<string> Grades { get; set; }
        public bool Employee { get; set; }
        public string Employed { get; set; }
        public string Function { get; set; }
        public List<string> CrimRec { get; set; }
    }
...zur Frage

C# schleife funktioniert nicht?

        Circle kreisX = new Circle();
        Console.WriteLine("Bitte geben sie die X Cordinate an: ");
        kreisX.XCordinate = Convert.ToInt16(Console.ReadLine());
       
        Circle kreisY = new Circle();
        Console.WriteLine("Bitte geben sie die Y Cordinate an: ");
        kreisY.YCordinate = Convert.ToInt16(Console.ReadLine());
     
        Circle kreis = new Circle();
        do{
            Console.WriteLine("Bitte geben sie den Radius des Kreises an: ");
            kreis.Radius = Convert.ToInt16(Console.ReadLine());
        }while(kreis.Radius < 0);
      
        Console.WriteLine("Radius: {0}, X Cordinate: {1}, Y Cordinate: {2}", kreis.Radius, kreisX.XCordinate, kreisY.YCordinate);
        Console.ReadLine();

Die do -while schleife will nicht funktionieren und zwar soll der Programm teil wiederholt werden wenn das Objekt kreis.Radius den wert 0 erhält warum funktioniert es nicht? Die schleife wird ignoriert...wenn ich schreib (kreis.Radius > 0) funktioniert sie aber anders herum nicht. Hier ist noch der Programmteil der anderen Klasse:

    private double _XCordinate;
    public double XCordinate
    {
        get { return _XCordinate; }
        set { _XCordinate = value; }
    }

    private double _YCordinate;
    public double YCordinate
    {
        get { return _YCordinate;}
        set { _YCordinate = value;}
    }

    private int _Radius;
    public int Radius
    {
        get { return _Radius;}
        set
        {
            if (value >= 0)
                _Radius = value;
            else
                Console.WriteLine("Unzulässiger negativer Wert: {0}", value);
        }
...zur Frage

Was möchtest Du wissen?