C# SerializationInfo für Arrays

1 Antwort

Ich nehme an, dass du noch relativ neu in der (objektorientierten) Programmierung bist.

Diese Vorgehensweise mit den Arrays ist extrem fehlerbehaftet. Was passiert z.B. wenn du in einem Array einen Wert vergisst oder wenn ein Array länger als die anderen ist?

Du solltest also dein Programm umstellen:

public class Keks
{
public string Sorte { get; set; }
public uint Brennwert { get; set; }
public uint Kalorien { get; set; }
public uint Kohlenhydrate { get; set; }
}

public class Kekse
{
public KeksSammlung { get; private set; }

public Kekse()
{
var kekse = new List();
kekse.Add(new Keks() { Sorte = "Schoko", Brennwert = 2186, Kalorien = 552, Kohlenhydrate = 58 });
//mehr Kekse!
KeksSammlung = kekse;
}
}

Damit wären die Fehlerquellen, die durch die Arrays entstehen können, beseitigt. Weiter gehts zu Serialisierung.

Die Serialisierung wird in C# durch Attribute gelöst. Du sagst über das Attribut aus, dass eine Klasse serialisierbar sein soll. Das sind nur ein paar Zeilen Code.

[Serialiable]
public class Keks
{
  public string Sorte { get; set; }
  public uint Brennwert { get; set; }
  public uint Kalorien { get; set; }
  public uint Kohlenhydrate { get; set; }
}

public class Kekse
{
public KeksSammlung { get; private set; }

  public Kekse()
  {
  var kekse = new List<Keks>();
  kekse.Add(new Keks() { Sorte = "Schoko", Brennwert = 2186, Kalorien = 552, Kohlenhydrate = 58 });
  //mehr Kekse!
KeksSammlung = kekse;
  }

public void Serialize(string pfad)
{
var serializer = new XmlSerializer(typeof(List<Keks>));
using (var writer = new StreamWriter(pfad))
{
serializer.Serialize(writer, kekse);
}
}
}

Ich habe hier die die Daten in eine Xml-Datei serialisiert. Es wäre natürlich auch möglich, es nur binär serialisieren zu lassen. Dann muss einfach nur die Klasse XmlSerializer ausgetauscht werden.

Ach ja, und nun noch die Anwendung:

public static void Main(string[] args)
{
var cookies = new Kekse();
cookies.Serialize(@"C:\pfad\zur\datei.xml");
}

Größe eines Arrays in Konstruktor übergeben (Java)

Hallo :)

Ich hab eine Java-Frage. Und zwar versuche ich gerade diese Aufgabe zu lösen: http://wiki.freitagsrunde.org/Javakurs/%C3%9Cbungsaufgaben/Studentendatenbank

bei Teilaufgabe 5 komme ich nicht weiter... es scheitert daran, dass ich nicht weiß, wie man die Größe eines Arrays im Konstruktor übergeben soll... Also was ich später in der Main machen muss, ist klar. Nur komme ich in der Klasse StudentDatabase nicht weiter.

Da steht bis jetzt das drinnen:

**public class StudentDatabase

{

int Anzahl;

Studenten Daten[]= new Studenten[Anzahl];

StudentDatabase(int A)

{

this.Anzahl=A;

Daten[A];
/* hier kriege ich die Fehlermeldung Syntaxerror insert "AssignmentOperator Expression" to complete Expression*/

} } **

für hilfreiche Antworten wäre ich wirklich sehr dankbar!

Viele Grüße :)

...zur Frage

C# gerade und ungerade Zahlen ausgeben?

Liebe Community,

in einem vorgegeben Beispiel, darf der Benutzer zwischen den Zahlen 1-35 eingeben wie viele Zahlen er berechnen will. Gibt man zum Beispiel "5" ein, kommt er 5 mal in eine for-Schleife rein, in der er 5 verschieden Zahlen eingibt.

So nun ist meine Frage : Ausgeben werden soll " Es gibt x gerade Zahlen und x ungerade Zahlen" (also von den 5 eingebenen). Aber wie kann ich das ausgeben bzw, das er er sich ausrechnet wieviel davon gerade und un gerade sind und er dann diese Meldung gibt : " Es gibt x gerade Zahlen und x ungerade Zahlen " .

Hoffe Ihr könnt mir helfen, danke im Voraus!

An die Admins..... nein es ist keine Hausaufgabe, also bitte nicht löschen und stattdessen unnötige Fragen :)

Mfg

...zur Frage

Im Array nach einer bestimmten Zahl suchen brauche hilfe?

import java.util.Scanner; 

public class Felder
{
public static void main(String[] args)
{
// Beschreibung des Programms

System.out.println("Erstellung eines Arrays mit n-Feldern");
System.out.println();


//Scanner zur Einagbe der Feldgröße

Scanner sc = new Scanner(System.in);

System.out.print("Bitte geben sie die Größe des Arrays ein ");
int feldgroesse = sc.nextInt();


int[] a = new int[feldgroesse];

System.out.println("Nun füllen Sie das Array mit ganzen Zahlen");
System.out.println();


// Schleife zum füllen des Arrays

for (int i=0; i<feldgroesse;i++)
{
System.out.print("Bitte geben Sie eine Ganzzahl ein: ");
a[i] = sc.nextInt();
}

for (int i; i = 0; i++)
{
if(a[i] = = 5)
{
System out println(„Der Array enthält die gesuchte Zahl: “ + a[i]);
}
}
printFeld(a);
sc.close();
}

public static void printFeld(int[] a)
{

//gibt das Arrays auf der Konsole aus
System.out.println();
System.out.println("Ausgabe des Arrays");
System.out.println();
for (int i=0; i<a.length;i++)
{
System.out.println("Feld "+ i + " = " +a[i]);
}
}
}

Komme nicht weiter bitte mit einer code Antwort helfen hänge seit 3 Tagen an dieser Aufgabe. Danke Eine eigene Methode schreiben(suchIndex(int[] a, int wert)) die eine vom Nutzer abgefragte Zahl im zuvor erstellten Array sucht und wenn es gefunden wird mit dem entsprechenden Index ausgibt

...zur Frage

Wie sieht die Punktnotation in Java aus oder wie kann ich auf auf andere Klassen zugreifen?

Wie kann ich in der Klasse Telefon die Methoden aus der Klasse Telefonbuch verwenden ? Wenn ich es mit Punktnotation versuche wie z.B.

public void eintrag_hinzufuegen(String name)
{
    Telefonbuch.hinzufuegen(name);
}

, kommt die Fehlermeldung : non static method cannot be referenced from a static context

1)

import java.util.ArrayList;
public class Telefon
{
protected ArrayList <Telefonbuch> telefonbuch;
protected boolean eingeschaltet;
        
        public Telefon()
    {
        // initialise instance variables
        telefonbuch = new ArrayList <Telefonbuch>();
    }
    
    public void anrufen (String name)
    {
    }
    
    public void einschalten()
    {
        eingeschaltet = true;
    }
    
    public void telefonbuch_uebersicht()
    {
        
    }
    
    public void eintrag_hinzufuegen(String name)
    {
    }
    
    public void eintrag_entfernen(String name)
    {
    }
    
    public boolean eintrag_suchen(String name)
    {
    }
}

2)

import java.util.Arrays;

/**
 * Write a description of class Telefonbuch here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Telefonbuch
{
    // instance variables - replace the example below with your own
    private int anzahl_eintrag;
    private int kapazitaet;
    private String[] name_liste;
    protected boolean gefunden;

    /**
     * Constructor for objects of class Telefonbuch
     */
    public Telefonbuch()
    {
        // initialise instance variables
        String [] name_liste = new String[kapazitaet];
        gefunden = false;
    }
    
    public void set_kapazitaet(int x)
    {
        kapazitaet = x;
    }
    
    public void telefonbuch_uebersicht()
    {
        for(int i=0; i < name_liste.length; i++)
        {
        System.out.println(name_liste[i]);
        }
    }
    
    public void hinzufuegen(String name)
    {
        
    }
    
    public void entfernen(String name)
    {
    }
    
    public boolean suchen(String name)
    {
        for(int i=0; i < name_liste.length; i++)
        {
         if(name_liste[i].equals(name))
         {
         gefunden = true;
         }
         else
         {
         //Abbruch
         }
        }
        return gefunden;
    }
}

...zur Frage

Kann es sein dass Stevia zu 100% aus Kohlenhydraten besteht und so gut wie keine Kalorien besitzt?

Laut Nährwert Tabelle hat Stevia bei 100g 99,9g Kohlenhydrate aber nur einen Brennwert von 0,6 kcal. Ist das möglich? Laut meinen Recherchen müssten Kohlenhydrate einen Nährwert von 17 KJ/g besitzen.

Danke für die Hilfe.

...zur Frage

WICHTIG: Wie speichert man bei Louis Mansion 2?

ICH WILL NICHT IMMER VON VORNE ANFANGEN!!!

...zur Frage

Was möchtest Du wissen?