Wątek przeniesiony 2015-09-24 22:52 z C# i .NET przez somekind.

co to jest ten dwukropek w parametrach wywołania metody

0

Cześć. Powiedzcie mi co to jest ten dwukropek pomiędzy dwoma nazwami bom zapomniał...

bardzo wielkie dzięki... Donek

  class Program
    {
        //
        #region JM-3-450-obliczenia bez użycia dodatkowych wątków ( w wątku głównym apliakcji )
        static Random r = new Random();
        //
        static void Main(string[] args)
        {
            int czasPoczatkowy = Environment.TickCount;// JM-3-450
            //
            uruchamianieObliczenPi();
            //
            int czasKoncowy = Environment.TickCount;
            int roznica = czasKoncowy - czasPoczatkowy;
            //
            Console.WriteLine("Czas obliczeń: " + (roznica).ToString());// 485 ms, 500 ms, 578 ms, 562 ms, 719 ms, 562 ms
            //
            Console.ReadLine();
        }
        //
        static double obliczPi(long ilośćPrób)
        {
            double x, y;
            long ilośćTrafień = 0;
            for (long i = 0; i < ilośćPrób; ++i)
            {
                x = r.NextDouble();
                y = r.NextDouble();
                if (x * x + y * y < 1) ++ilośćTrafień;
                //Console.WriteLine("x={0}, y={1}", x, y);
            }
            return 4.0 * ilośćTrafień / ilośćPrób;
        }
        //
        static void uruchamianieObliczenPi()
        {
            long ilośćPrób = 10000000L;
            double pi = obliczPi(ilośćPrób: ilośćPrób);            
            Console.WriteLine("Pi={0}, błąd={1}", pi, Math.Abs(Math.PI - pi));
        }
        #endregion
        //
    }
0

named parameters

0

Jestem totalny pierwszoklasista właśnie zaczynam programowanie C#... chodzi mi o poniższą linijkę wywołania metody:
double pi = obliczPi(ilośćPrób: ilośćPrób);
moje zapytanie jest: dlaczego aż dwakroć trzeba podać nazwę i jeszcze o co chodzi z tym dwukropkiem bo się totalnie pogubiłem
Może w konkretnie jakim opisie jest to czego dotyczy, coś bliżej bo literatury mam sporo jednakże niezbyt wiem gdzie dokładnie szukać opisu. Wielkie dzięki za podpowiedź Donek

0

Tak w skrócie to jeśli masz metodę która ma parametry opcjonalne to możesz zmienić jeden parametr nie dotykając wcześniejszych.
Np.

void ABC(string a ="qwert" string b = "poiuy" string c);

to zamiast pisać

ABC("qwert","poiuy","paramert")

piszesz po prostu

ABC(c:"parametr");

Pozdr.

0

Wielkie dzięki... coś mi już świta w główce... właśnie przed chwilą czytałem iż można chyba od NET 4.0 po nazwie... bez zachowania kolejności... to tak na szybko sobie już kontaktuję. Raz jeszcze wielkie dzięki Donek.

0

sprawdziłem usuwając dwukropek oraz powtórne użycie nazwy parametru... no i jak mi Kolega powyżej doradził ja tak to zrobiłem i jest OK czyli skompilował się program. trochę mnie zmyliło ponieważ autor chyba przesadnie wobec tylko pojedynczego parametru argumentu tak postąpił. W każdym razie już zrozumiałem o co tutaj chodzi. Raz jeszcze wielki dzięki. Donek

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