• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dzielenie kodu na kilka plików źródłowych

0 głosów
171 wizyt
pytanie zadane 12 października 2018 w C# i .NET przez Krzysiek Kowalczyk Początkujący (260 p.)

Witam. 

Czytałem, że w sytuacji gdy program jest duży i mało czytelny to lepiej aby każda klasa była w oddzielnym pliku. I teraz pytanie: Jak odwoływać się do tych plików? Czy poprawnym będzie podobne zadeklarowanie jak w C++ (http://cpp0x.pl/kursy/Kurs-C++/Dzielenie-kodu-na-kilka-plikow-zrodlowych/310) przez np "using MojaKlasa"?

W internecie podają informacje jak przy użyciu Visual Studio "wyklikać" klasę i odwołać ją do pliku. A ja chcę wiedzieć jak wygląda sprawa od czysto kodowej strony (niestety nie mam Visual Studio Community a MonoDevelop - taki kompromis bycia użytkownikiem linuxa)

1 odpowiedź

0 głosów
odpowiedź 12 października 2018 przez Milesq Stary wyjadacz (13,760 p.)

1) pokaż kod

2) kiedy includujesz 'plik1' do 'plik' to żeby odwołać się do klasy, albo po prostu to robisz, albo używasz operator zakres::element

np.(nazwy polskie tylko dla przykladu, proszę używaj angielskich ;) )

main.cpp

#include "plik1.hpp"
int main ()
{
    klasa foo;
    przestrzenNazw::klasaWPrzestrzeni bar;
    return 0;
}
#ifndef plik1
#define plik1
//zabezpieczenie przed wielokrotnym dodawaniem tego samego pliku
class klasa {
   int numer;
   int numer2;
};

namespace przestrzenNazw {
    class  klasaWPrzestrzeni {
        int numer;
        int numer2;
    }
}

#endif

ewewntualnie żeby za każdym razem nie pisać 

przestrzenNazw::klasaWPrzestrzeni

możesz użyć na początku main.cpp

using namespace przestrzenNazw;
lub
using przestrzenNazw::klasaWPrzestrzeni;
komentarz 12 października 2018 przez Krzysiek Kowalczyk Początkujący (260 p.)
Nie mam tak dużego kodu (narazie). Chcę się tylko dowiedzieć jak można wywołać metodę z oddzielnego pliku C# w głównym projekcie (przy użyciu kodu). Informacje do jakich się dokopałem opisują jak w Visual Studio utworzyć zewnętrzną klasę widoczną dla Project Exporera.
komentarz 12 października 2018 przez garris Użytkownik (630 p.)

To musisz powiedzieć o co Ci dokładnie chodzi, pokaże Ci jak ja robię w takich sytuacjach.

Settings.cs

using System;

namespace Test
{
	class Settings{
		private static readonly string _foo= "google.pl";
        private static readonly string _protocol = "http";
        public static string Foo => _protocol + "://" + _foo;
}
}

navigateClass.cs

(jakieś przykładowe użycie)

namespace Test
{
    class navigateClass
    {
        void doSth()
        {
            session.NavigateTo<Page>(Settings.Foo);
        }
    }
}

Może na przykładzie będzie Ci łatwiej zrozumieć. Jak widzisz jeżeli klasy są w tym samym namespace i zmienne są publiczne to z dostaniem się do nich nie ma problemu, using używasz gdy masz klasy w różnym namespace. A jeżeli chodzi Ci o coś innego to musisz sprecyzować.

Podobne pytania

0 głosów
1 odpowiedź 64 wizyt
pytanie zadane 14 sierpnia 2018 w C# i .NET przez KacperStachula Nowicjusz (190 p.)
0 głosów
1 odpowiedź 162 wizyt
0 głosów
4 odpowiedzi 614 wizyt
pytanie zadane 8 kwietnia 2016 w C# i .NET przez Placidus Użytkownik (530 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

62,316 zapytań

108,446 odpowiedzi

226,391 komentarzy

35,096 pasjonatów

Przeglądających: 202
Pasjonatów: 7 Gości: 195

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...