none
Grundsätzliches über Klasse MainWindow.xaml.cs RRS feed

  • Frage

  • hallo,

    ich wollte ein array mit Werten befüllen und es als Histogramm darstellen, habe folgenden Fehler wenn ich auf histo.Length zugreife , histo ist ein feld wird aber wie ein Typ verwendet

    und das ist mein code

    namespace WpfApplication1

    {

        /// <summary>

        /// Interaktionslogik für MainWindow.xaml

        /// </summary>

        public partial class MainWindow : Window

        {

            public MainWindow()

            {

                InitializeComponent();

            }

     

            static void Main(string[] args)

            {

            private int[] histo = new int[10];

            private Random rnd = new Random();

            private int histo_max = 0;

     

            //Befuellen des Histogramms

            for (int i = 0; i < histo.Length; i++)

            {

                histo[i] = rnd.Next(15);

            }

     

            StackPanel lsp = new StackPanel();

            lsp.VerticalAlignement = VerticalAlignment.Bottom;

            }

        }

    }

     

    Freitag, 2. September 2011 12:01

Antworten

  • Hallo H.,

    hier ein Beispiel:

    using System;
    using System.Windows;
    using System.Windows.Controls;
    
    namespace WpfApplication1
    {
      public partial class MainWindow : Window
      {
        private int[] histo = new int[10];
        private Random rnd = new Random();
        StackPanel lsp = new StackPanel();
        
        public MainWindow()
        {
          InitializeComponent();
          Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }
    
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
           //Befuellen des Histogramms
           for (int i = 0; i < histo.Length; i++)
               histo[i] = rnd.Next(15);
           lsp.VerticalAlignment = VerticalAlignment.Bottom;
           lsp.Orientation = Orientation.Horizontal;
           foreach (var item in histo)
             lsp.Children.Add(new Label() { Content = item }); 
           Content = lsp;
        }
      }
    }
    
    

    ________

    Nebenbei: Für WPF gibt es ein eigenes Forum.
    In WPF würde man das normal über ein Binding (später auch mit MVVM) machen, aber ich habe Dir das jetzt mal über Deine originale Idee umgesetzt.

    ________

    Grundsätzliches über Klassen findest Du u.a. hier:

    [Klassen (C#-Programmierhandbuch)]
    http://msdn.microsoft.com/de-de/library/x9afc042.aspx 

    Für die Deklaration privater Felder siehe:

    [Felder (C#-Programmierhandbuch)]
    http://msdn.microsoft.com/de-de/library/ms173118.aspx


    ciao Frank
    Freitag, 2. September 2011 14:37

Alle Antworten

  • Und was genau ist dein problem ? Was klappt denn nicht ?

     

    Freitag, 2. September 2011 12:16
  • ich habe doch geschrieben: ich kann nicht auf histo.Length, es kompilliert nicht
    Freitag, 2. September 2011 12:21
  • Hi,

    ich kenn es ja nur von VB, aber in einer Methode kannst Du eigentlich keine private variablen deklarieren. Entferne mal die "privates" und es müsste funktionieren.


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Freitag, 2. September 2011 12:35
  • Hallo H.,

    hier ein Beispiel:

    using System;
    using System.Windows;
    using System.Windows.Controls;
    
    namespace WpfApplication1
    {
      public partial class MainWindow : Window
      {
        private int[] histo = new int[10];
        private Random rnd = new Random();
        StackPanel lsp = new StackPanel();
        
        public MainWindow()
        {
          InitializeComponent();
          Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }
    
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
           //Befuellen des Histogramms
           for (int i = 0; i < histo.Length; i++)
               histo[i] = rnd.Next(15);
           lsp.VerticalAlignment = VerticalAlignment.Bottom;
           lsp.Orientation = Orientation.Horizontal;
           foreach (var item in histo)
             lsp.Children.Add(new Label() { Content = item }); 
           Content = lsp;
        }
      }
    }
    
    

    ________

    Nebenbei: Für WPF gibt es ein eigenes Forum.
    In WPF würde man das normal über ein Binding (später auch mit MVVM) machen, aber ich habe Dir das jetzt mal über Deine originale Idee umgesetzt.

    ________

    Grundsätzliches über Klassen findest Du u.a. hier:

    [Klassen (C#-Programmierhandbuch)]
    http://msdn.microsoft.com/de-de/library/x9afc042.aspx 

    Für die Deklaration privater Felder siehe:

    [Felder (C#-Programmierhandbuch)]
    http://msdn.microsoft.com/de-de/library/ms173118.aspx


    ciao Frank
    Freitag, 2. September 2011 14:37
  • Danke für die ausführliche Antwort, ich schau mir alles durch
    Samstag, 3. September 2011 10:34
  • Hallo herki,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Freitag, 9. September 2011 14:11
    Moderator