2013-09-23 7 views
24

Я объявил перечисление:Pass в перечислении в качестве параметра метода

public enum SupportedPermissions 
{ 
    basic, 
    repository, 
    both 
} 

У меня также есть ПОКО так:

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

Теперь я хотел бы создать метод, который я могу использовать для создания нового объекта File с:

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; 
} 

Как создать параметр для перечисления, и как бы я назначу, что, как и в моем псевдо трески e SupportedPermissions = supportedPermissions.basic, чтобы в моем экземпляре File был установлен SupportedPermissions?

+0

Является ли это плохой вопрос? Причина голосования? –

+2

pass SupportedPermissions.basic в параметрах при вызове метода n устанавливает переменную supportedPermissions в свойство. Надеюсь, это поможет – Akanksha

+0

Причина для downvote - это имя Variable, как Enum. – tmighty

ответ

28

Изменить подпись метода CreateFile, чтобы ожидать значение SupportedPermissions вместо обычного Enum.

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; 
} 

Тогда при вызове методы вы передаете значение SupportedPermissions к вашему методу

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

Если вы хотите передать в стоимости использования, вы должны использовать тип перечисления вы объявленные и непосредственно используйте прилагаемое значение:

Если вы хотите использовать фиксированное значение, вам не нужен какой-либо параметр. Вместо этого прямо используйте значение перечисления. Синтаксис похож на статический член класса:

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

Первое изменение параметра метода Enum supportedPermissions к SupportedPermissions supportedPermissions.

Затем создайте файл как этот

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

и призыв к вашему методу должен быть

CreateFile(id, name, description, SupportedPermissions.basic); 
Смежные вопросы