Передать в перечисление как параметр метода
Я объявил перечисление:
public enum SupportedPermissions
{
basic,
repository,
both
}
У меня также есть POCO:
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;
}
Как мне создать параметр для перечисления и как бы присвоить его, как в моем псевдокодеке SupportedPermissions = supportedPermissions.basic
, чтобы в моем экземпляре File был установлен SupportedPermissions?
Ответы
Ответ 1
Измените подпись метода 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);
Ответ 2
Если вы хотите передать значение, которое вы хотите использовать, вы должны использовать указанный тип перечисления и напрямую использовать предоставленное значение:
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;
}
Если вы хотите использовать фиксированное значение, вам вообще не нужен какой-либо параметр. Вместо этого прямо используйте значение перечисления. Синтаксис похож на статический член класса:
public string CreateFile(string id, string name, string description) // <---
{
file = new File
{
Name = name,
Id = id,
Description = description,
SupportedPermissions = SupportedPermissions.basic // <---
};
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);
Ответ 4
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;
}