接口:描述可屬于任何類或結構的一組相關功能,通過interface關鍵字來聲明;
接口只包含方法、委托或事件和屬性的簽名(接口包含的成員)、不能包含字段(因為字段是包含數據的)。方法的實現是“繼承”接口的類中完成的;
接口可以包含的成員的訪問修飾符只能且默認為public;
一個接口可以從一個或多個基接口繼承;
接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員;
當基類型列表包含基類和接口時,基類必須是列表中的第一項;
實現接口的類可以顯式實現該接口的成員,顯示實現的成員不能通過類實例訪問,而只能通過接口實例訪問;
類和結構可以按照類繼承基類或結構的類似方式繼承接口;但注意:
類或結構可繼承多個接口;
類或結構繼承接口時,僅繼承方法名稱和簽名,因為接口本身不包含實現;
接口和接口成員是抽象的(但不用寫出abstract關鍵字);接口不提供默認實現;
接口只包含方法、委托或事件和屬性的簽名(接口包含的成員)、不能包含字段(因為字段是包含數據的)。方法的實現是“繼承”接口的類中完成的;
接口可以包含的成員的訪問修飾符只能且默認為public;
一個接口可以從一個或多個基接口繼承;
接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員;
當基類型列表包含基類和接口時,基類必須是列表中的第一項;
實現接口的類可以顯式實現該接口的成員,顯示實現的成員不能通過類實例訪問,而只能通過接口實例訪問;
類和結構可以按照類繼承基類或結構的類似方式繼承接口;但注意:
類或結構可繼承多個接口;
類或結構繼承接口時,僅繼承方法名稱和簽名,因為接口本身不包含實現;
接口和接口成員是抽象的(但不用寫出abstract關鍵字);接口不提供默認實現;
接口是一種規劃(為你定義出一系列的規則和任務,但不去實現它);
先看一個實例:
interface IPoint
{
// Property signatures:
int x
{
get;
set;
}
int y
{
get;
set;
}
}
class Point : IPoint
{
// Fields:
private int _x;
private int _y;
// Constructor:
public Point(int x, int y)
{
_x = x;
_y = y;
}
// Property implementation:
public int x
{
get
{
return _x;
}
set
{
_x = value;
}
}
public int y
{
get
{
return _y;
}
set
{
_y = value;
}
}
}
class MainClass
{
static void PrintPoint(IPoint p)
{
Console.WriteLine("x={0}, y={1}", p.x, p.y);
}
static void Main()
{
Point p = new Point(2, 3);
Console.Write("My Point: ");
PrintPoint(p);
}
}
// Output: My Point: x=2, y=3
{
// Property signatures:
int x
{
get;
set;
}
int y
{
get;
set;
}
}
class Point : IPoint
{
// Fields:
private int _x;
private int _y;
// Constructor:
public Point(int x, int y)
{
_x = x;
_y = y;
}
// Property implementation:
public int x
{
get
{
return _x;
}
set
{
_x = value;
}
}
public int y
{
get
{
return _y;
}
set
{
_y = value;
}
}
}
class MainClass
{
static void PrintPoint(IPoint p)
{
Console.WriteLine("x={0}, y={1}", p.x, p.y);
}
static void Main()
{
Point p = new Point(2, 3);
Console.Write("My Point: ");
PrintPoint(p);
}
}
// Output: My Point: x=2, y=3
上面是一個簡單的接口實現,如果在一個Web網頁上的.CS文件中繼承一個接口,如下:
先定義接口:
public interface Iuser{string UserName { set; get; }string Role { set; get; }string Age { set; get; }string Sex { set; get; }bool Userlogin(string Name,string PassWord);}
新建一個頁面Login.aspx,代碼如下;
<body><form id="form1" runat="server"><div><table class="style1"><tr><td class="style2"><asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label></td><td><asp:TextBox ID="txtUserName" runat="server"></asp:TextBox></td></tr><tr><td class="style2"><asp:Label ID="lblPassWord" runat="server" Text="PassWord"></asp:Label></td><td><asp:TextBox ID="txtPassWord" runat="server"></asp:TextBox></td></tr><tr><td class="style2"></td><td><asp:Button ID="btnSubmit" runat="server" οnclick="btnSubmit_Click" Text="Submit" /></td></tr><tr><td class="style2"></td><td><asp:Label ID="lblMessage" runat="server"></asp:Label></td></tr></table></div></form>
</body>
Login.aspx.cs代碼如下:
public partial class Login : Iuser{protected void Page_Load(object sender, EventArgs e){}private string _Age;private string _Role;private string _Sex;private string _UserName;#region Iuser Memberspublic string Age{get{return _Age;}set{_Age = value;}}public string Role{get{return _Role;}set{_Role = value;}}public string Sex{get{return _Sex;}set{_Sex = value;}}public string UserName{get{return _UserName;}set{_UserName = value;}}public bool Userlogin(string Name, string PassWord){return true;}#endregionprotected void btnSubmit_Click(object sender, EventArgs e){if (Userlogin(txtUserName.Text, txtPassWord.Text)){lblMessage.Text = "login Successful!";SetUserInfo(txtUserName.Text);}else{lblMessage.Text = "Login fail!";}}protected void SetUserInfo(string Name){Age = "25";Role = "Visit";Sex = "Man";UserName = "spring yang";}}
然后新建一個UsingUser.cs類;
代碼如下:
public class UsingUser : WebPart, Iuser{private string _Age;private string _Role;private string _Sex;private string _UserName;#region Iuser Memberspublic string Age{get{return _Age;}set{_Age = value;}}public string Role{get{return _Role;}set{_Role = value;}}public string Sex{get{return _Sex;}set{_Sex = value;}}public string UserName{get{return _UserName;}set{_UserName = value;}}public bool Userlogin(string Name, string PassWord){return true;}#endregionprivate void AddControlToWebPart(){Type controlType = Type.GetType("ASP.web_Login_aspx,webinterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5");System.Web.UI.UserControl userControl = (System.Web.UI.UserControl)this.Page.LoadControl(controlType, null);Iuser iuserProperty = userControl as Iuser;Age = iuserProperty.Age;Role = iuserProperty.Role;Sex = iuserProperty.Sex;UserName = iuserProperty.UserName;this.Controls.Add(userControl);}}
這樣就可以調用頁面內容的數據了,通過接口傳遞頁面的數據就這樣完成了,你可以在UsingUser.cs做你想要的操作了.