Avatar billede columbus32 Nybegynder
16. november 2007 - 14:23 Der er 5 kommentarer og
1 løsning

Variabel bliver ikke tildelt værdi

Hejsa
Jeg har følgende metode:

public bool isUpdateAllowed(Object MMid) {
MMCompany mc;
string id = MMid.ToString();
for (int i = 0; i < al.Count; i++)
  {
  if (id == ((MMCompany)al[i]).getNo()){
    mc = (MMCompany)al[i];
    break;
    }
  }
  return mc.allowUpdateInMM();
}


Når jeg køre koden får jeg følgende fejl:

Compiler Error Message: CS0165: Use of unassigned local variable 'mc'

Jeg kan godt forstå hvorfor den fejler (tror jeg da) for variablem mc kunne jo godt undgå at få tildelt en værdi når den bliver returneret, men hvordan bør jeg gribe dette problem an?
Avatar billede smitten1 Nybegynder
16. november 2007 - 14:28 #1
hvis den skal returnere false, hvis den ikke går ind i løkken, så kunne følgende være en mulighed

MMCompany mc = null;

return (mc == null) ? false : mc.allowUpdateInMM();
Avatar billede mikkel_sommer Nybegynder
16. november 2007 - 14:30 #2
Er du sikker på at 'al' indeholder noget? for hvis ikke bliver mc ikke instancieret.
Avatar billede mikkel_sommer Nybegynder
16. november 2007 - 14:31 #3
...eller try/catch
Avatar billede columbus32 Nybegynder
16. november 2007 - 14:42 #4
Valgte:

MMCompany mc = null;

return (mc == null) ? false : mc.allowUpdateInMM();

Jeg er næsten 100% sikker på at mc aldrig forbliver null, men der kan jo ske så meget.

Smitten1 hvis du lavet et svar så får du lidt points. Tak for hjælpen :-)
Avatar billede smitten1 Nybegynder
16. november 2007 - 14:53 #5
okay, hvis du gerne vil have flere returns, kunne du også gøre sådan:

public bool isUpdateAllowed(Object MMid) {
string id = MMid.ToString();
for (int i = 0; i < al.Count; i++)
  {
  if (id == ((MMCompany)al[i]).getNo()){
    return ((MMCompany)al[i]).allowUpdateInMM();
    }
  }
  return false;
}
Avatar billede columbus32 Nybegynder
16. november 2007 - 14:57 #6
Stopper den så dens loop hvis den returnere true i if sætningen?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester