Avatar billede jonas_h Nybegynder
30. april 2008 - 08:51 Der er 5 kommentarer

Sende "null" med som argument

Jeg har lavet en metode:
public List<User> GetAllUsers(Guid RoleId)

som returnerer alle brugere som er i den rolle som sendes med som argument. Jeg har skrevet metoden sådan, at sendes null som reference vil den vælge alle brugere i hele systemet.

Derfor har jeg lavet metoden
public List<User> GetAllUsers()
{
  return this.GetAllUsers(null);
}

Hvilket compileren ikke vil lade mig gøre... Hvordan er det muligt at lave dette "trick"?
Avatar billede mh6000 Nybegynder
30. april 2008 - 08:54 #1
Prøv med bare: return null;
Avatar billede mh6000 Nybegynder
30. april 2008 - 09:04 #2
eller

return this.GetAllUsers(new Guid(""));
Avatar billede sherlock Nybegynder
30. april 2008 - 09:11 #3
Det kan du ikke, med Guid som parameter-type.

Uddrag om Guid's

"The Guid Structure
Globally Unique Identifiers can be generated using the .NET framework's Guid structure within the System namespace.  Note that this is a structure, not a class, so is a value type.  This also means that Guids cannot be assigned a null value."
Avatar billede crazysnap Seniormester
30. april 2008 - 10:05 #4
I det Guid er en value-type kan du jo bare gøre den nullable. Så hvis du ændrer din GetAllUsers metode til noget lignende nedenstående, kan du fint kalde den med null som parameter:


public List<User> GetAllUsers(Guid? RoleIdNullable)
{
    //Tester og RoleIdNullable er null
    if (!RoleIdNullable.HasValue)
        return new List<User>();

    Guid RoleId = RoleIdNullable.Value;

    return new List<User>();
}


Bemærk det lille spørgsmålstegn "?" efter Guid i input paramter-datatypen. ? er bare kort for Nullable<Guid> så man kunne også skrive:


public List<User> GetAllUsers(Nullable<Guid> RoleIdNullable)
{
  .....
}


Man kan herefter fint kalde metoden med: 

GetAllUsers(null);


Håber dette løser dit problem.


Mvh.
CS
Avatar billede montago Praktikant
30. april 2008 - 16:06 #5
Guid.Empty er jo også et alternativ til NULL
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