接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明;
接口只包含方法、委托或事件和属性的签名(接口包含的成员)、不能包含字段(因为字段是包含数据的)。方法的实现是“继承”接口的类中完成的;
接口可以包含的成员的访问修饰符只能且默认为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

上面是一个简单的接口实现,如果在一个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做你想要的操作了.

转载于:https://www.cnblogs.com/springyangwc/archive/2011/03/16/1986136.html

C# 谈谈Interface和通过Interface传递web页面数据相关推荐

  1. 谈谈SPI (Serial Peripheral Interface,串行外设接口)

    今天我们来一起聊聊谈谈SPI (Serial Peripheral Interface,串行外设接口): 什么是SPI SPI (Serial Peripheral Interface,串行外设接口) ...

  2. [Flume]使用 Flume 来传递web log 到 hdfs 的例子

    [Flume]使用 Flume 来传递web log 到 hdfs 的例子: 在 hdfs 上创建存储 log 的目录: $ hdfs dfs -mkdir -p /test001/weblogsfl ...

  3. 浅谈ASP中Web页面间的数据传递

    [简 介] 基于Web的动态网页设计必会涉及到页面间的数据传递,文章探讨了ASP设计中常用的Web页面间的数据传递方式,分析各种数据传递方式的使用方法.使用场合及优缺点,其都是设计阶段选择数据传递方式 ...

  4. 转:Web页面通过URL地址传递参数常见问题及检测方法

    Web页面即我们在浏览器中所看到的网页,在Web应用程序中,其页面往往需要进行动态切换和数据交互,页面间的数据常规传递方法有多种,本文主要介绍Web页面处理程序中常见的URL地址参数传递方法,包括概述 ...

  5. DECLARE_META_INTERFACE(INTERFACE)和IMPLEMENT_META_INTERFACE(INTERFACE, NAME)宏定义分析

    这里讲的两个宏定义是IPC中鼎鼎大名的 DECLARE_META_INTERFACE(INTERFACE) IMPLEMENT_META_INTERFACE(INTERFACE, NAME) 定义 f ...

  6. 大数据WEB阶段 后台和页面之间传递日期格式数据的400问题

    后台和页面之间传递日期格式数据的400问题 一.分析 java中的日期格式是yyyy/MM/dd ,而浏览器中支持的格式是yyyy-MM-dd 二.后台向页面传递日期格式信息解决 用taglib标签引 ...

  7. eNSP配置web防火墙登录华为防火墙Web页面

    目录 eNSP配置web防火墙登录华为防火墙Web页面 基本定义 防火墙功能 重要性 意义与特征 主要类型 关键技术 部署方式 具体应用 未来趋势 eNSP配置web防火墙登录华为防火墙Web页面 P ...

  8. 用ISAPI方式实现Web页面的自动更新

    对于某些网站管理员来说,最痛苦的事情莫过于每天必做的重复工作.譬如:从新闻页面中删除旧的新闻标题,换上新的新闻标题:如果想让读者能看到以前的新闻,还要更改随时间改变的FormField值.等等.用DE ...

  9. 自动化运维工具之Zabbix发现_自动注册及web页面状态监控(四)

    网络发现(Network Discovery) **网络发现是zabbix最具有特色的功能之一,它能根据用户实现定义好的规则自动添加监控主机和服务等 -->speed up Zabbix dep ...

最新文章

  1. 从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;
  2. IT建设的4化(转载)
  3. 跑步碰撞大数据,走进悦跑圈的数据“大观园”
  4. cmake 安装mysql5.6_CMAKE安装MYSQL 5.6.10
  5. Pytorch高阶API示范——线性回归模型
  6. 你不是不擅长数学,你只是打开方式不对
  7. 如何在SQL Server中使用数据质量服务清除主数据服务数据
  8. redhat6.2 下gcc安装
  9. React 进修之路(1)
  10. C语言读者管理系统——软件项目开发实践
  11. windows下的nc下载地址
  12. 易打卡模板微信签到打卡小程序源码在线下载
  13. swfobject2.2参数详解
  14. 苦难是人生中必须经历的一课
  15. 怎样用python计算π的值_IV.python初探日记:python实现蒙特卡洛方法计算π值
  16. springMVC+ajax分页查询
  17. win10:强力删除文件
  18. 小米miui查看连接过已保存的密码方法
  19. Nutch 分布式运行模式 (v1.14)
  20. 现代控制理论2——状态空间分析法

热门文章

  1. 维吉尼亚密码和一次性密码本_密码学中的一次性密码
  2. 我和乘子交替方向法admm_找到最大和交替子序列
  3. python---异常处理结构
  4. 557. 反转字符串中的单词 III golang 数组和字符串反转
  5. PyCharm和git安装教程
  6. tornado 学习注意事项--00
  7. 冲突域 广播域简单解释
  8. Java进阶:java字符串定位语句
  9. git 基本命令和操作
  10. sys.modules[__name__]的一个实例