我在Here中找到了一个主题,关于如何从MVC中的枚举创建下拉列表。 以下是该主题的答案:
我将Rune的答案转换为扩展方法:
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { Id = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
我确实需要这样做,但它使用扩展方法,我不知道它是什么以及如何实现它。 所以任何人都可以帮助我让这段代码工作吗? 我需要知道什么是扩展方法以及如何实现它们。
感谢
答案 0 :(得分:1)
扩展方法是具有一个或多个参数的static
类的成员,第一个参数必须与代码示例中的this
关键字一起归属。
从那时起,只要将包含该类的命名空间添加为using
语句,就可以对给定类型的任何实例使用扩展方法。
持有扩展方法的类的示例:
public static class ExtensionMethods
{
public static string Reverse(this string source)
{
string result = String.Empty;
for (int i = 0; i < source.Length; i++)
result = source.Substring(i, 1) + result;
return result;
}
}
使用此扩展方法,如
string toBeReversed = "Hello World";
string reversed = toBeReversed.Reverse();
重点是向现有类型添加功能而不实际继承它。使用扩展方法,您可以将新功能“附加”到任何给定类型,而无需实际更改它。