2013-09-23 16 views
24

I zadeklarowały enum:przejściu w enum jako parametr metody

public enum SupportedPermissions 
{ 
    basic, 
    repository, 
    both 
} 

Mam też poco tak:

public class File 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public SupportedPermissions SupportedPermissions { get; set; }  
} 

Teraz chciałbym stworzyć metodę, że mogę użyć, aby utworzyć nowy obiekt File ze:

public string CreateFile(string id, string name, string description, Enum supportedPermissions) 
{ 
    file = new File 
    { 
     Name = name, 
     Id = id, 
     Description = description, 
     SupportedPermissions = supportedPermissions.basic 
    }; 

    return file.Id; 
} 

Jak utworzyć parametr do wyliczenia iw jaki sposób przypisać, że podobnie jak w moim pseudo dorsza e SupportedPermissions = supportedPermissions.basic, więc moja instancja pliku ma ustawioną wartość SupportedPermissions?

+0

Czy to jest złe pytanie? Powód głosowania w dół? –

+2

przekazać SupportedPermissions.basic w parametrach podczas wywoływania metody n ustawić zmienną supportedPermissions na właściwość. Mam nadzieję, że pomaga – Akanksha

+0

Powód downvote nazywa się Variable like Enum. – tmighty

Odpowiedz

28

Zmień podpis metody CreateFile, aby oczekiwać wartości SupportedPermissions zamiast zwykłego wyliczenia.

public string CreateFile(string id, string name, string description, SupportedPermissions supportedPermissions) 
{ 
    file = new File 
    { 
     Name = name, 
     Id = id, 
     Description = description, 
     SupportedPermissions = supportedPermissions 
    }; 

    return file.Id; 
} 

Wtedy, kiedy nazywają swój sposób przekazać wartość SupportedPermissions do sposobu

var basicFile = CreateFile(myId, myName, myDescription, SupportedPermissions.basic); 
4

Jeśli chcesz przekazać wartości w użyciu, trzeba użyć typu enum zadeklarowanej i jest bezpośrednio użyj podanej wartości:

public string CreateFile(string id, string name, string description, 
       /* --> */ SupportedPermissions supportedPermissions) 
{ 
    file = new File 
    { 
     Name = name, 
     Id = id, 
     Description = description, 
     SupportedPermissions = supportedPermissions // <--- 
    }; 

    return file.Id; 
} 

Jeśli zamiast tego chcesz użyć stałej wartości, nie potrzebujesz żadnego parametru. Zamiast tego użyj bezpośrednio wartości wyliczeniowej. Składnia jest podobna do statycznego członka klasy:

public string CreateFile(string id, string name, string description) // <--- 
{ 
    file = new File 
    { 
     Name = name, 
     Id = id, 
     Description = description, 
     SupportedPermissions = SupportedPermissions.basic // <--- 
    }; 

    return file.Id; 
} 
0
public string CreateFile(string id, string name, string description, SupportedPermissions supportedPermissions) 
{ 
    file = new File 
    { 
     Name = name, 
     Id = id, 
     Description = description, 
     SupportedPermissions = supportedPermissions 
    }; 

    return file.Id; 
} 
3

najpierw zmienić parametr metody Enum supportedPermissions do SupportedPermissions supportedPermissions.

Następnie należy utworzyć plik jak ten

file = new File 
{ 
    Name = name, 
    Id = id, 
    Description = description, 
    SupportedPermissions = supportedPermissions 
}; 

i wezwanie do metody powinny być

CreateFile(id, name, description, SupportedPermissions.basic); 
Powiązane problemy