博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#之接口
阅读量:5732 次
发布时间:2019-06-18

本文共 2140 字,大约阅读时间需要 7 分钟。

一 接口

     接口只是定义了可由类或结构实现的协定,其可包括方法,属性,事件,索引器,但不提供方法的实现,仅指定必须由实现接口的类或者结构提供。

    代码演示:

    public interface IDataBound
    {
        void Bind(string str);
    }
    public interface IControl
    {
        void paint();
    }
    public class EditBox: IControl, IDataBound
    {
       //下面两个同名接口区别
        public void paint()
        {
            Console.WriteLine("EditBox Interface IControl");
         }
        void IControl.paint()
        {
            Console.WriteLine("Interface IControl");
        }
        public void Bind(string str)
        {
            Console.WriteLine("EditBox Interface IDataBound");
         }
    }
 static void Main(string[] args)
        {
            //当类或结构实现特定接口时,此类或结构的实例可以隐式转换成相应的接口类型
            EditBox editBox = new EditBox();
            IControl iControl = editBox;
            editBox.paint();
            //在类中显示实现接口成员时,当接口变量调用成员时,会强制使用接口中的成员方法(带有句点符号的那个方法)。
            iControl.paint();
            //下面的调用仍然是显示实现接口成员。
            object obj = new EditBox();
            IControl control = (IControl)obj;
            control.paint();
            Console.ReadKey();
        }
    }
 
       输出结果:
         EditBox Interface IControl
         Interface IControl
         Interface IControl
     实现接口的类可以显式实现该接口的成员。 显式实现的成员不能通过类实例访问,而只能通过接口实例访问。

二 接口属性

   所谓接口属性就是在接口定义一个属性成员:

   public interface ISampleInterface

   {
       // Property declaration:
        string Name
       {
          get;
          set;
       }
    }

   接口属性的访问器没有正文。 因此,访问器的用途是指示属性为读写、只读还是只写。

 

interface IEmployee

{
    string Name     //读写
    {
        get;
        set;
    }
    int Counter    //只读
    {
        get;
    }
 }
public class Employee : IEmployee
{
    public static int numberOfEmployees;    //statc修饰变量只属于类,各个对象共享,因此调用该类型的变量时,使用的是类名Employee.numberOfEmployees
    private string name;
    public string Name  // read-write instance property
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
    private int counter;
    public int Counter  // read-only instance property
    {
        get
        {
            return counter;
        }
    }
    public Employee(// constructor
    {
        counter = ++numberOfEmployees;
    }
}
class TestEmployee
{
    static void Main()
    {
        System.Console.Write("Enter number of employees: ");
        Employee.numberOfEmployees = int.Parse(System.Console.ReadLine());   //将输入的数据中包含的字符串转换成int
        Employee e1 = new Employee();
        System.Console.Write("Enter the name of the new employee: ");
        e1.Name = System.Console.ReadLine();
        System.Console.WriteLine("The employee information:");
        System.Console.WriteLine("Employee number: {0}", e1.Counter);
        System.Console.WriteLine("Employee name: {0}", e1.Name);
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xingyuanzier/p/10271724.html

你可能感兴趣的文章
Vue+NodeJS+ElementUI 的简单示例
查看>>
php实现构建乘积数组(算法:替换)(语法错误:分号和$符号)
查看>>
php实现求一个数的质数因子
查看>>
laravel中建立公共视图的方法
查看>>
Selenium&PhantomJS 完成爬取网络代理
查看>>
Android测试环境搭建(win7)
查看>>
C#后台调用浏览器打开下载连接地址的三种方法
查看>>
PHP CURL抓取网页 simple_html_dom类
查看>>
【Heap-dijkstra】Gym - 100923B - Por Costel and the Algorithm
查看>>
【置换群】Codeforces Round #393 (Div. 1) A. Pavel and barbecue
查看>>
【随机化】【并查集】Gym - 100851J - Jump
查看>>
安装charles
查看>>
网络安装archlinux(2012.8.20)笔记
查看>>
HDU 6044 - Limited Permutation | 2017 Multi-University Training Contest 1
查看>>
HDU 1073 - Online Judge
查看>>
git clone出现fatal: unable to access 'https://': SSL certificate problem: self signed certificate
查看>>
用MySQL创建数据库和数据库表
查看>>
计算题:挣值、预测、沟通、盈亏平衡点、
查看>>
RAM 大全-DRAM, SRAM, SDRAM的关系与区别
查看>>
Dedecms V5.7后台的两处getshell
查看>>