我有两个功能:
public static string Image(this HtmlHelper helper, string src, string alt)
和
public static string Image(HtmlHelper helper, string src, string alt)
我想知道this
在第一个函数中的作用,为什么在这种情况下我必须把参数this
放在第一位?
我有两个功能:
public static string Image(this HtmlHelper helper, string src, string alt)
和
public static string Image(HtmlHelper helper, string src, string alt)
我想知道this
在第一个函数中的作用,为什么在这种情况下我必须把参数this
放在第一位?
不知道为什么你会被否决。人们需要学习,对吧?
这些是扩展,它们必须进入静态类。
对于您的 HtmlHelper 对象,您可以将其与如下扩展一起使用:
string retString = objHelper.Image(srcString, altString);
如果您没有扩展,则必须编写:
string retString = Image(objHelper, scrString, altString);
它们都产生相同的结果。
关键字this
使其成为针对HtmlHelper
该类的扩展方法。这在 MVC 中得到了很多利用,您可以在其中执行诸如@Html.Image
使用 Razor 语法之类的操作。你可能会认出这样一个:
@Html.TextBoxFor(...)
这是一个扩展函数调用。如果将 this 放在第一个参数的前面,则可以调用该方法,就好像它是该参数的函数一样。值得阅读 http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx
他们可以使代码更容易被下一个人阅读
感谢你们。这个例子清除了一切:
public static bool BiggerThan(this string theString, int minChars)
{
return (theString.Length > minChars);
}
您可以轻松地在字符串对象上使用它:
var isBigger = "my string is bigger than 20 chars?".BiggerThan(20);