losowanie zmiennej i korzystanie z niej w innych klasach

0

Witam
Mam taki oto program

 namespace application
{
    class klucz
    {
        public int losuj()
        {
            int zmienna;
            Random losuj = new Random();
            int z;
            z = losuj.Next(0, 100);

            zmienna = z;

            return zmienna;
        }

    }
}

Mam tą klasę klucz i metode losuj, jak zrobic żeby zaraz po uruchomieniu jej wylosować liczbę i korzystać z Niej w innych klasach, żeby do końca sesji programu korzystać z tej tylko jednej zmiennej. Mam do tej pory tak że jak odwołam się do tej metody losuj w innej klasie to mi losuje nową liczbę, w kolejnej klasie także jeszcze inną.

0

Wylosuj liczbę w konstruktorze i potem ją zwracaj

 public class klucz
        {
            static klucz()
            {
                Zmienna = new Random().Next(0, 100);
            }
            public static int Zmienna { get; }
        }
 

w innych klasach odwołujesz się poprzez klucz.Zmienna

0

Ale jak skorzystać z metody w konstruktorze?

0

zmien swoją klasę na kod podany przeze mnie a wywołania metody losuj zastąp klucz.Zmienna

0

A jest inna możliwość przekazania w konstruktorze metody losu? U mnie jest tego typu problem że funkcja nie posiada tylko losowania. Jest tam szereg innych czynności które prowadzą do wyniku.

Metoda jest dość spora i działa tak jak trzeba, tylko ciągle problem z tym żeby przypisać ją do zmiennej raz przy starcie proramu i żeby taka została do końca.

0
class klucz
{
    private int? zmienna;

    public int losuj()
    {
        if (!zmienna.HasValue)
        {
            Random losuj = new Random();
            
            zmienna = losuj.Next(0, 100);
        }

        return zmienna.Value;
    }

}

class Program
{
    static void Main(string[] args)
    {
        klucz k = new klucz();
        Enumerable.Range(0, 10).ToList().ForEach(x => Console.WriteLine(k.losuj()));

        Console.ReadKey();
    }
}

Swoja droga dziwne to losowanie co za kazdym razem zwraca te sama wartosc...

1

Anonimie, losuje Ci to samo bo

  1. Inicjalizacje Random powinienes miec raz, a nie za kazdym razem jak bierzesz wartosc
  2. nie jest potrzebny tutaj nullable
  3. klasy funkcje i properties zaczynamy z duzej litery
  4. nazwa klasy klucz jest bezsensu
0

To napisz to do OPa - ja tylko wzialem jego kod i przerobilem tak zeby wartosc losowal raz a pozniej zwracal zawsze to co juz wylosowal - w kazdym razie tak rozumiem to co OP chce osiagnac.

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