Bardzo niezrozumiały Warning

Dział z pytaniami o absolutne podstawy programowania w C# (dla początkujących).

Moderator: xxSlayeRxx

Bardzo niezrozumiały Warning

Sponsor

Sponsor
 

Bardzo niezrozumiały Warning

Postprzez maniek910 » Wt kwi 29, 2014 7:51 am

Witam piszę w c# może jakiś tydzień i bardzo często przy zabawie z tablicami obiektowymi Kompilator raczy mnie bardzo nie zrozumiałym Warningiem dla mnie .

Mój kod :
Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string imie,nazwisko;
        int wiek;
        Form1[] tab = new Form1[3];
        public Form1(string my_imie,string my_nazwisko,int my_wiek)
        {
            InitializeComponent();
            imie = my_imie;
            nazwisko = my_nazwisko;
            wiek = my_wiek;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < tab.Length; i++)
            {
                tab[i] = new Form1("Name","SurName",0);
            }
        }
       

        private void bt_add_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < tab.Length; i++)
            {
                ListViewItem lvi = new ListViewItem(tab[i].imie);
                lvi.SubItems.Add(tab[i].nazwisko);
                lvi.SubItems.Add(tab[i].wiek.ToString());
                listView1.Items.Add(lvi);
            }
        }

       

    }
}


a oto treść warningu : "Accessing a member on 'WindowsFormsApplication1.Form1.wiek' may cause a runtime exception because it is a field of a marshal-by-reference class"

Czy ktoś był by tak miły i wytłumaczył o co w nim chodzi ?
maniek910
Member
 
Posty: 11
Dołączył(a): N kwi 27, 2014 7:48 pm

Re: Bardzo niezrozumiały Warning

Postprzez Radomiej » Wt kwi 29, 2014 1:25 pm

Dawno już w C# nie siedziałem, ale pewnie chodzi o ten kod:
Kod: Zaznacz cały
lvi.SubItems.Add(tab[i].wiek.ToString());


I kompilator pluje się że ToString() odnosi się do wiek(wiek tutaj to struktura więc nie trzeba go inicjalizować) który odnosi się do obiekty tab[i], który jest klasą i tak na dobrą sprawę może nie istnieć, wtedy powstanie wyjątek że obiekt nie istnieje i chyba o tym mówi ten warring:)
Radomiej
Member
 
Posty: 53
Dołączył(a): So gru 24, 2011 7:52 pm

Re: Bardzo niezrozumiały Warning

Sponsors

Sponsor
 


Powrót do Newbie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości