我想向System.Web.Mvc.ViewPage<T>类添加一个扩展方法。
这个扩展方法应该是什么样子?
我第一个想法是这样的:
namespace System.Web.Mvc
{
public static class ViewPageExtensions
{
public static string GetDefaultPageTitle(this ViewPage<Type> v)
{
return "";
}
}
}
在特定情况下,很多答案的区别在于需要一个泛型方法声明和一个语句来将泛型类型强制作为引用类型。
发布于 2018-08-03 12:15:59
这样做会产生错误:
The type 'TModel' must be a reference type in order to use it as parameter 'TModel' in the generic type or method
这让我想到了这个(http://forums.asp.net/p/1311022/2581563.aspx),产生了这样的解决方案:
namespace System.Web.Mvc
{
public static class ViewPageExtensions
{
public static string GetDefaultPageTitle<T>(this ViewPage<T> v)
where T : class
{
return "";
}
}
}
发布于 2018-08-03 12:58:19
namespace System.Web.Mvc
{
public static class ViewPageExtensions
{
public static string GetDefaultPageTitle<T>(this ViewPage<T> view)
where T : class
{
return "";
}
}
}
你可能希望将“new()”限定符添加到泛型类型(即“WHERE T:class,New()”)中,以强制T既是引用类型(类),又具有无参数构造函数。
https://stackoverflow.com/questions/-100000494
复制相似问题