我正在尝试将 Enum 传递给将为 gridview 创建列的方法。我可以将 Enum 作为 Enum passEnum OR Type enumType 传递,两者都可以,但不能一起使用。我的意思是,如果我将它作为类型传递,则 Enum.GetNames() 方法接受它,如果我将它作为枚举传递,则 StringEnum.GetString() 方法接受它。但是我不能通过一个并且让他们都接受它,我不能分别通过它们(枚举和类型)并且都接受它。AMOST 的工作方法:
public static void AddColumnsToGridView(GridView gv, Enum passEnum, Type enumType)
{
BoundField bf = new BoundField();
int c = 0;
foreach (string item in Enum.GetNames(enumType))
{
bf = new BoundField();
bf.HeaderText = StringEnum.GetString((passEnum)c);
bf.DataField = item;
bf.ItemStyle.CssClass = "siteFont leftPaddingThree";
bf.SortExpression = item;
gv.Columns.Add(bf);
c++;
}
}
我在 passEnum 下得到一条红色的波浪线,上面写着:“找不到类型或命名空间‘passEnum’……等等”。出于某种原因,我可以让它在这样的方法之外工作:
BoundField bf = new BoundField();
int c = 0;
foreach (string item in Enum.GetNames(typeof(PatientRX)))
{
bf = new BoundField();
bf.HeaderText = StringEnum.GetString((PatientRX)c);
bf.DataField = item;
bf.ItemStyle.CssClass = "siteFont leftPaddingThree";
bf.SortExpression = item;
gvRX.Columns.Add(bf);
c++;
}
StringEnum.GetString() 方法获取附加到枚举的字符串值。它需要一个枚举传递给它。我怎样才能让它在一个方法中工作?