C# Intellisense grupowanie

1

Ciężko mi wytłumaczyć o co mi chodzi...

Przykład (uproszczony dla jasności): Mam klasę, nazwijmy ją 'ZMIENNE_I_STALE' wyglądającą mniej więcej tak:

class ZMIENNE_I_STALE
    {
        public int Zmienna1 = 1;
        public int Zmienna2 = 2;

        public const int Stala1 = 1;
        public const int Stala2 = 2;
    }

I co w związku z tym? Otóż do Zmienna1 odwołuję się jako ZMIENNE_I_STALE.Zmienna1;.

I cały mój problem polega na tym że chciałbym odwoływać się nich na przykład tak: ZMIENNE_I_STALE.Zmienne.Zmienna1; ZMIENNE_I_STALE.Stale.Stala1;

Jedyne co mi przychodzi do głowy to zagnieżdżenie klas (utworzenie publicznych 'stale' i 'zmienne' z publiczną zawartością), ale to przecież bez sensu! Musi być jakieś "ładniejsze" rozwiązanie!

No więc: czy jest jakiś ładnie wyglądający sposób na zaimplementowanie takiego podziału w kodzie?

Jeśli jest to wystarczy mi nazwa instrukcji do poszukania w google... Nie wiem nawet na razie czego szukać... (Przeglądałem też msdn)

Tak czy inaczej proszę o pomoc, z góry dziękuje.

0

Zrób to enumami (mogącymi dziedziczyć po różnych typach)

0

A co jest zlego w zagniezdzonych klasach, dlaczego są "bez sensu"? Wg. mnie to wlasnie jeden z niewielu scenariuszy, w ktorych publiczne typy zagniezdzone maja zastosowanie.
Dodatkowo proponuje podzielic wartosci na logiczne grupy i umiescic je w osobnych plikach, calkiem przyjemne rozwiazanie opisalem kiedys na blogu: link.

0

Może takie rozwiązanie przypadnie Ci do gustu:

    public static class Configuration
    {
        public static class Variables
        {
            public static int Xa = 123;
            public static int Xb = 9;
        }

        public static class Constants
        {
            public const int X = 100;
            public static readonly List<String> Names = new List<string>(new String[] { "A", "B", "V" });
        }
    }
0

@mykhaylo - przecież użyłeś klas zagnieżdżonych właśnie :)

0

A może po prostu namespace? W końcu one do grupowania są chyba stworzone, prawda?

0

@somekind - masz racje. Nie wczytałem się w post. W każdym razie widać co autorowi się nie podoba.

0
Ktos napisał(a)

A może po prostu namespace? W końcu one do grupowania są chyba stworzone, prawda?

No ale nie zrobisz przecież namespace wewnątrz klasy.

Ja ładniejszego i łatwiejszego sposobu niż klasy zagnieżdżone nie znam.

0
namespace ZIENNE_I_STALE{
    public class Zmienne{
        public int Zmienna1 = 1;
        public int Zmienna2 = 2;
    }
    public class Stale{
        public const int Stala1 = 1;
        public const int Stala2 = 2;
    }
}

i bez zagnieżdżonych klas :)

0

using ZIENNE_I_STALE;

I caly misterny plan w p....
Klasy zagniezdzone gwarantuja jeden centralny punkt wejscia do takich wartosci.

0

Wiem, ale kolega chciał koniecznie bez klas zagnieżdżonych :)

1

Przyznaje że mój warunek (bez zagnieżdżonych klas) był niezbyt mądry...

@mykhaylo, twój sposób rzeczywiście jest najlepszy, ale na soje usprawiedliwienie dodam że rozpieszczony automatycznym tworzeniem nowego pliku przy dodawaniu obiektu, nie wpadłem na to że można umieścić kilka klas w jednym pliku ;)

No więc dziękuje za pomoc, problem rozwiązany.

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