传入枚举作为方法参数
本文关键字:方法 参数 枚举 | 更新日期: 2023-09-27 18:32:19
我已经声明了一个枚举:
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 实例设置了支持的权限?
更改 CreateFile
方法的签名,使其需要SupportedPermissions
值而不是纯枚举。
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);
如果要
传入要使用的值,则必须使用声明的枚举类型并直接使用提供的值:
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;
}
首先将方法参数Enum supportedPermissions
更改为SupportedPermissions supportedPermissions
。
然后像这样创建你的文件
file = new File
{
Name = name,
Id = id,
Description = description,
SupportedPermissions = supportedPermissions
};
对你的方法的调用应该是
CreateFile(id, name, description, SupportedPermissions.basic);
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;
}