» »

[c#] Optional parameters must appear....

[c#] Optional parameters must appear....

Cvenemir ::

Lep pozdrav.

Izdelati moram podprogram, ki podano število sekund pretvori v ure, minute in sekunde. Pri naslednji kodi naletim na napako "Optional parameters must appear after all required parameters". Kak nasvet?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P2_cas
{
    class Program
    {
        private static void izracun(int vhodnoStevilo = 0, out int steviloUr, out int steviloMinut, out int steviloSekund)
        {
            steviloUr = vhodnoStevilo / 3600;
            int ostanek1 = vhodnoStevilo % 3600;
            steviloMinut = ostanek1 / 60;
            int ostanek2 = ostanek1 % 60;
            steviloSekund = ostanek1;
        }

        static void Main(string[] args)          
        {
            int steviloUr, steviloMinut, steviloSekund;

            Console.WriteLine("Vnesite število sekund: ");
            
            int vhodnoStevilo = int.Parse(Console.ReadLine());

            izracun(vhodnoStevilo = 0, out steviloUr, out steviloMinut, out steviloSekund);
            
            Console.WriteLine("Število ur je: {}", steviloUr);
            Console.WriteLine("Število minut je: {}", steviloMinut);
            Console.WriteLine("Število sekund je: {}", steviloSekund);

            Console.ReadKey(true);

        }

    }
}

lambda ::

private static void izracun(int vhodnoStevilo = 0, out int steviloUr, out int steviloMinut, out int steviloSekund)


Tole ni ok. Natanko to kot ti piše, optional parameter mora biti za ne-optional parametri.

Preberi si kaj več o tem: optional parameters

Cvenemir ::

Sem spremenil v
private static void izracun(int vhodnoStevilo, out int steviloUr, out int steviloMinut, out int steviloSekund)
.

Zdaj pa ko zaženem in vpišem neko število dobim exception error: Make sure your method arguments are in the right format. Kako sparsam, da bo delovalo?

nightrage ::

Nisem čist prepričan, poiskus takole.

private static void izracun(int vhodnoStevilo = 0, out int steviloUr, out int steviloMinut, out int steviloSekund)
        {
            steviloUr = 0;
            steviloMinut = 0;
            steviloSekund = 0;

            steviloUr = vhodnoStevilo / 3600;
            int ostanek1 = vhodnoStevilo % 3600;
            steviloMinut = ostanek1 / 60;
            int ostanek2 = ostanek1 % 60;
            steviloSekund = ostanek1;
        }

amacar ::

Tole dela:

class Program
    {
        private static void izracun(int vhodnoStevilo, out int steviloUr, out int steviloMinut, out int steviloSekund)
        {
            steviloUr = 0;
            steviloMinut = 0;
            steviloSekund = 0;
            steviloUr = vhodnoStevilo / 3600;
            int ostanek1 = vhodnoStevilo % 3600;
            steviloMinut = ostanek1 / 60;
            ostanek1 = ostanek1 % 60;
            steviloSekund = ostanek1;
        }

        static void Main(string[] args)
        {
            int steviloUr, steviloMinut, steviloSekund;

            Console.WriteLine("Vnesite število sekund: ");

            int vhodnoStevilo = int.Parse(Console.ReadLine());

            izracun(vhodnoStevilo, out steviloUr, out steviloMinut, out steviloSekund);

            Console.WriteLine("Število ur je: "+steviloUr.ToString());
            Console.WriteLine("Število minut je: "+steviloMinut.ToString());
            Console.WriteLine("Število sekund je: "+steviloSekund.ToString());

            Console.ReadKey(true);

        }

    }

Spura ::

Hvala za opomin zakaj so out parametri anti-pattern.

Pri naslednji kodi naletim na napako "Optional parameters must appear after all required parameters". Kak nasvet?

Znas anglesko?

Zgodovina sprememb…

  • spremenil: Spura ()

lambda ::

Saj tu bi lahko težili z marsičem, ne samo z out parametri kot anti patternu. Naming conventions npr., ter to da optional parametri tu sploh nimajo smisla.

V bistvu se vse da narest z TimeSpan.FromSeconds(numberOfSeconds), a to verjetno ni namen njegove naloge, če mora pisat neke podprograme, da sam to izračuna ...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Domača naloga

Oddelek: Šola
7850 (722) lebdim
»

[C] Vsota števil v polju

Oddelek: Programiranje
51245 (1183) Cvenemir
»

[C#] Operacija IN in ALI med dvema int številoma

Oddelek: Programiranje
111144 (957) LeQuack
»

[C#] Input string was not in a correct format.

Oddelek: Programiranje
61053 (990) Cvenemir
»

Pomoč pri programčkih

Oddelek: Programiranje
152880 (2530) Mitja Bonča

Več podobnih tem