17. juni 2007 - 20:12Der er
24 kommentarer og 1 løsning
Nybegynder-spørgsmål!
Hej eksperter!
Jeg har lige taget hul på C#, og sidder og leger lidt med den meget begrænset erfaring jeg har, og er stødt på et problem jeg ikke selv er i stand til at løse:
Når jeg kalder konto1.securityCheck(); får jeg følgende fejl:
C:\Documents and Settings\Coldie\My Documents\Visual Studio Projects\ConsoleApplication6\Class1.cs(78): No overload for method 'securityCheck' takes '0' arguments
public void securityCheck (string kUser, int kPass) { if (kBrugernavn == kUser) { Console.WriteLine("Brugernavn godkendt.. kontrollerer adgangskode!");
if (kKode == kPass) { Console.WriteLine("Adgangskode godkendt.. giver adgang til programmet!"); kAccess = 1; } else Console.WriteLine("Adgangskode afvist.."); } else Console.WriteLine("Brugernavn afvist.."); }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg er ved at lave et lille program der omregner temperaturer, men jeg forstår ikke hvorfor den ikke kan gøre det her:
private void txtFahrenheit_TextChanged(object sender, System.EventArgs e) { decimal x; x = Convert.ToInt32(txtFahrenheit.Text); x = (4/9) * x * 32; txtCelcius.Text = Convert.ToString(x); }
fjerner man 4/9 så fungerer det fint, har også prøvet med andre relevante typer som double eller decimal, men samme resultatet; Celcius-boksen forbliver 0 hvis 4/9 indgår.
C# overloads the division operator. This means that based on the input arguments, the results may vary. For example, C# division will return an integer when dividing integers, but it will return a fractional number if a float, a double, or a decimal data type is used. Hence, 32 / 5 will return 6, dropping the remainder (2, in this case). If you wanted to return the actual value of the operation 32 / 5, you would have to specify the numbers with decimal places (that is, 32.0 / 5.0). ----- med andre ord din "division" leverer 0. hvis du vil have det rigtige tal, så skal du dividere 4.0 med 9.0
takker for den hurtige og præcise hjælp! er taknemlig for den venlighed der er at finde herinde!
en anden lille ting, (håber ikke det virker belastende):
Hvis man i en windows applikation har en klasse ved navn account, og opretter en isntans af denne account i Form1_Load, altså Account test = new Accounts(parametre);
hvordan får man så adgang til denne instanses metoder fra eks. en commandbutton,
Troede bare man skulle skrive det inden i Form1_Load for at få det til at virke ved program-start, men går ud fra at variabler der skal være tilgængelige for hele applikationen også skal erklæres udenfor?
En ting jeg synes virker abstrakt i C#, er måden man håndterer de forskellige instanser af de forskellige klasser på.
hvis jeg f.eks laver to instanser af Account Account test1 = new Account(); Account test2 = new Account();
Så rent logisk kan jeg let forestille mig to imaginære konti.
En måde jeg kan kontrollere for adgang, ville være ved at kaldes
test1.performCheck(); test2.performCheck();
og se om nogle af dem returnerer true.
Men er der en metode hvorpå man kan kontrollere en hel klasses instanser; altså kalde en funktion (eller hvad man kalder det i C#), som kontrollerer alle instanser
Jeg kiggede på foreach, men den virker kun på variabler og ikke klasser (foreach element in var)
Koden kan hurtig blive uoverskuelig hvis man opretter eksempelvis 200 accounts, så skulle de jo alle hard-codes med min erfaring :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.