我开始使用接口,我真的不明白......情况是这样的: 有一个webcontrol(称为TableControl),它使用转发器显示项目表。 TableControl还包括一行实现分页的游标(first,previous,next,last)。游标从另一个webControl(CursorControl)导入。 TableControl还实现了一个接口,我在其中声明了一些方法来进行分页。
*)CursorControl
public class CursorControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
private string cursor_value;
public string CursorValue
{
get { return cursor_value; }
set { cursor_value = value; }
}
// Called when cursor is clicked.
protected void lnkClick_Command(object sender, CommandEventArgs e)
{
cursor_value = e.CommandArgument.ToString();
}
}
*)TableControl
public partial class TableControl : System.Web.UI.UserControl, IPageableControl
{
protected void Page_Load(object sender, EventArgs e)
{
if(isPostBack)
{
currentPage = CursorControl.CursorValue;
OtherPage(currentPage);
}
}
public int currentPage;
void IPageableControl.OtherPage(int i)
{
if (i == 0)
currentPage = 2;
else if (i == 1 || i == (-1))
currentPage += i;
else
currentPage = 25;
}
}
*)界面
public interface IPageableControl
{
// Summary:
// Go to page
void OtherPage(int i);
}
当用户点击游标时,我将值传递给TableControl,TableControl应该启动方法OtherPage。但它不起作用,它说OtherPage不在当前的上下文中。
如何访问接口的方法??
答案 0 :(得分:1)
你需要这一行:
void IPageableControl.OtherPage(int i)
进入这个:
void OtherPage(int i)
第一个是明确的,第二个是隐含的。 (What are the differences?)
顺便说一句,在Visual Studio上,当你想要实现一个接口时,在界面名称上按 Ctrl + 。(点)它会问你如何实现它。它使得它不那么繁琐,因为你不必自己输入签名(方法名称)。