Przeniesienie metody i struktury do osobnego pliku

0

Witam,
Poniżej prosty przykład projektu w VWD2010, w którym po naciśnięciu przycisku wywoływana jest metoda Metoda() zwracająca strukturę o nazwie Osoba i dane osoby wyświetlane są na stronie.

Chciałbym umieścić metodę Metoda() i strukturę Osoba w osobnym pliku Moje.cs.

Jak zmienić poniższe pliki, aby projekt zadziałał?

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Projekts.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Button ID="btnZmien" runat="server" OnClick="btnZmien_Click" Text="Zmien napis" />
    &nbsp;
    <asp:Label ID="lblNapis" runat="server" Text="Stary napis"></asp:Label>
    </form>
</body>
</html>

Default.aspx.cs

namespace Projekts
{
    struct Osoba
    {
        public string Nazwisko;
        public string Imie;
    };

    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void btnZmien_Click(object sender, EventArgs e)
        {
            Osoba o1;
            o1 = Metoda();
            lblNapis.Text = o1.Nazwisko+" "+o1.Imie;
        }

        Osoba Metoda()
        {
            Osoba o2;
            o2.Nazwisko = "Nowak";
            o2.Imie = "Jan";
            return o2;
        }
    }
}

Moje.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Projekts
{
    public class Moje
    {
       // ???????????????
    }
}

Dziękuję i bardzo proszę o pomoc w formie poprawy ww.
mm

0

Ale co Ci konkretnie nie działa? Bo przekopiować do innego pliku to nawet przedszkolak chyba potrafi..
Obstawiam, że nie potrafisz odwołać się do klasy/stworzyć obiektu. No więc jak to przenosisz to musisz w Default.aspx.cs dodać odpowiednią referencję. Jakoś tak to będzie (nie sprawdzałem):

using Projekts.Moje
0

po przeniesieniu do Moje.cs
Moje.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Projekts
{
    public class Moje
    {
        static struct Osoba
        {
            public string Nazwisko;
            public string Imie;
        };

        static Osoba Metoda()
        {
            Osoba o2;
            o2.Nazwisko = "Nowak";
            o2.Imie = "Jan";
            return o2;
        }
    }
}

jest błąd:

The modifier static is not valid for this item

a jak usunę static, to:

Osoba could not be found
1

Dlaczego umieściłeś definicję struktury Osoba wewnątrz klasy Moje?

0

no właśnie, dlaczego? (uh)

DZIĘKI PROSIACZKU
jesteś XXL
:-)
jest ok

namespace Projekts
{
    public struct Osoba
    {
        public string Nazwisko;
        public string Imie;
    };

    public class Moje
    {
        public static Osoba Metoda()
        {
            Osoba o2;
            o2.Nazwisko = "Nowak";
            o2.Imie = "Jan";
            return o2;
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1