返回顶部
首页 > 资讯 > 精选 >C#接口编程详细降级
  • 954
分享到

C#接口编程详细降级

2023-06-17 23:06:40 954人浏览 安东尼
摘要

这篇文章主要介绍“C#接口编程详细降级”,在日常操作中,相信很多人在C#接口编程详细降级问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#接口编程详细降级”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!接口

这篇文章主要介绍“C#接口编程详细降级”,在日常操作中,相信很多人在C#接口编程详细降级问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#接口编程详细降级”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。

接口好比一种模版,这种模版定义了对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。接口不能被实例化。类可以实现多个接口并且通过这些实现的接口被索引。接口变量只能索引实现该接口的类的实例。例子:

interface IMyExample {       string this[int index] { get ; set ; }       event EventHandler Even ;       void Find(int value) ;       string Point { get ; set ; }   }   public delegate void EventHandler(object sender, Event e) ;

上面例子中的接口包含一个索引this、一个事件Even、一个方法Find和一个属性Point。

C#接口可以支持多重继承。就像在下例中,接口"IComboBox"同时从"ITextBox"和"IListBox"继承。

interface IControl {       void Paint( ) ;   }   interface ITextBox: IControl {       void SetText(string text) ;   }   interface IListBox: IControl {       void SetItems(string[] items) ;   }   interface IComboBox: ITextBox, IListBox { }

类和结构可以多重实例化接口。就像在下例中,类"EditBox"继承了类"Control",同时从"IDataBound"和"IControl"继承。

interface IDataBound {       void Bind(Binder b) ;   }   public class EditBox: Control, IControl, IDataBound {       public void Paint( ) ;       public void Bind(Binder b) {...}   }

在上面的代码中,"Paint"方法从"IControl"接口而来;"Bind"方法从"IDataBound"接口而来,都以"public"的身份在"EditBox"类中实现。

说明:

· C#接口是独立于类来定义的。这与 c++模型是对立的,在 C++中接口实际上就是抽象基类。

· 接口和类都可以继承多个接口。

· 而类可以继承一个基类,接口根本不能继承类。这种模型避免了 C++的多继承问题,C++中不同基类中的实现可能出现冲突。因此也不再需要诸如虚拟继承和显式作用域这类复杂机制。C#的简化接口模型有助于加快应用程序的开发

· 一个接口定义一个只有抽象成员的引用类型。C#接口实际所做的,仅仅只存在着方法标志,但根本就没有执行代码。这就暗示了不能实例化一个接口,只能实例化一个派生自该接口的对象。

· 接口可以定义方法、属性和索引。所以,对比一个类,接口的特殊性是:当定义一个类时,可以派生自多重接口,而你只能可以从仅有的一个类派生。

接口与组件

接口描述了组件对外提供的服务。在组件和组件之间、组件和客户之间都通过接口进行交互。因此组件一旦发布,它只能通过预先定义的接口来提供合理的、一致的服务。这种接口定义之间的稳定性使客户应用开发者能够构造出坚固的应用。一个组件可以实现多个组件接口,而一个特定的组件接口也可以被多个组件来实现。

组件接口必须是能够自我描述的。这意味着组件接口应该不依赖于具体的实现,将实现和接口分离彻底消除了接口的使用者和接口的实现者之间的耦合关系,增强了信息的封装程度。同时这也要求组件接口必须使用一种与组件实现无关的语言。目前组件接口的描述标准是IDL语言。

由于接口是组件之间的协议,因此组件的接口一旦被发布,组件生产者就应该尽可能地保持接口不变,任何对接口语法或语义上的改变,都有可能造成现有组件与客户之间的联系遭到破坏。

每个组件都是自主的,有其独特的功能,只能通过接口与外界通信。当一个组件需要提供新的服务时,可以通过增加新的接口来实现。不会影响原接口已存在的客户。而新的客户可以重新选择新的接口来获得服务。

组件化程序设计

组件化程序设计方法继承并发展了面向对象的程序设计方法。它把对象技术应用于系统设计,对面向对象的程序设计的实现过程作了进一步的抽象。我们可以把组件化程序设计方法用作构造系统的体系结构层次的方法,并且可以使用面向对象的方法很方便地实现组件。

组件化程序设计强调真正的软件可重用性和高度的互操作性。它侧重于组件的产生和装配,这两方面一起构成了组件化程序设计的核心。组件的产生过程不仅仅是应用系统的需求,组件市场本身也推动了组件的发展,促进了软件厂商的交流与合作。组件的装配使得软件产品可以采用类似于搭积木的方法快速地建立起来,不仅可以缩短软件产品的开发周期,同时也提高了系统的稳定性和可靠性。

组件程序设计的方法有以下几个方面的特点:

· 编程语言和开发环境的独立性.

· 组件位置的透明性.

· 组件的进程透明性.

· 可扩充性.

· 可重用性.

· 具有强有力的基础设施.

· 系统一级的公共服务.

C#语言由于其许多优点,十分适用于组件编程。但这并不是说C#是一门组件编程语言,也不是说C#提供了组件编程的工具。我们已经多次指出,组件应该具有与编程语言无关的特性。请读者记住这一点:组件模型是一种规范,不管采用何种程序语言设计组件,都必须遵守这一规范。比如组装计算机的例子,只要各个厂商为我们提供的配件规格、接口符合统一的标准,这些配件组合起来就能协同工作,组件编程也是一样。我们只是说,利用C#语言进行组件编程将会给我们带来更大的方便。 

到此,关于“C#接口编程详细降级”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C#接口编程详细降级

本文链接: https://lsjlt.com/news/294258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#接口编程详细降级
    这篇文章主要介绍“C#接口编程详细降级”,在日常操作中,相信很多人在C#接口编程详细降级问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#接口编程详细降级”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!接口...
    99+
    2023-06-17
  • Java编程接口详细
    目录一、抽象类和抽象方法二、接口三、Java中的多重继承四、通过继承来扩展接口1、组合接口时的名字冲突五、适配接口六、接口中的域七、嵌套接口1.类中的接口2.接口中的接口八、接口与工...
    99+
    2024-04-02
  • C++BoostMPI接口详细讲解
    目录一、说明二、开发和运行时环境三、简单数据交换一、说明 Boost.MPI 提供了 MPI 标准(消息传递接口)的接口。该标准简化了并发执行任务的程序的开发。您可以使用线程或通过共...
    99+
    2022-11-21
    C++ Boost MPI C++ MPI接口
  • 升级至iOS17公测版系统后如何降级?iOS 17 Beta降级详细教程
    苹果最近发布iOS 17首个公测版,许多果粉都迫不及待地进行了更新。但是不少小伙伴升级iOS 17后iPhone遇到了一些问题,例如APP闪退、吃内存、耗电快等。Bug太多导致体验很差,想要降级到iOS 16系统。 升级iOS 17bet...
    99+
    2023-09-11
    cocoa macos objective-c
  • SpringCloudFeign隔离与降级详细分析
    目录序篇FeignClient整合Sentinel1.1 修改配置,开启sentinel功能1.2 编写失败降级逻辑1.3 总结序篇 限流是一种预防措施,虽然限流可以尽量避免因高并发...
    99+
    2022-11-13
    SpringCloud Feign隔离与降级 SpringCloud Feign隔离 SpringCloud Feign降级
  • mysql 8.0.30 降级到 8.0.27的详细步骤
    经过探索方法如下:第一步: 备份原来的数据使用:mytsqldump mysqldump -uroot -p -E -R rourDB>dbbak.sql -E -R 导出所有(结构&数据&存储过...
    99+
    2024-04-02
  • mysql 8.0.30 降级到 8.0.27的详细步骤
    经过探索方法如下:第一步: 备份原来的数据使用:mytsqldump mysqldump -uroot -p -E -R rourDB>dbbak.sql -E -R 导出所...
    99+
    2024-04-02
  • C++网络编程详细讲解
    目录一、网络编程二、库示例练习一、网络编程 尽管 Boost.Asio 可以异步处理任何类型的数据,但它主要用于网络编程。这是因为 Boost.Asio 早在添加额外的 I/O 对象...
    99+
    2022-11-13
    C++网络编程 C++网络通信编程
  • C++ TCP网络编程详细讲解
    目录TCP介绍与编程流程TCP C/S架构TCP客户端编程流程1. 创建TCP套接字2. connect连接服务器3. send发送请求4. recv接收应答(默认带阻塞)5. cl...
    99+
    2024-04-02
  • C#8.0默认接口实现的详细实例
    Intro C# 8.0 开始引入了默认接口实现,也就是可以在接口里写方法实现。 在之前的版本中接口上是没有办法定义实现的,方法也都是 public 的,除了接口和属性之外是不能定...
    99+
    2024-04-02
  • C#连接MySQL操作详细教程
    C#如何连接MySQL进行操作,供大家参考,具体内容如下 引入MySql.Data.dll 例如小编是vs2017,创建工程之后,添加应用,选择工程,点击下面的引用,右击打开,选择添加引用 如何找到自己的MySql...
    99+
    2022-05-14
    C# MySQL
  • Python中面向接口编程详情
    目录前言概述 Python 接口非正式接口前言 接口在软件工程扮演重要角色,随着应用程序的功能不断扩展,代码库的更新和改变也难以管理。在许多情况下,会发现有一些看起来非常相似,但却不...
    99+
    2024-04-02
  • Windows下sentry接入C/C++程序的详细过程
    目录sentry简介sentry的作用sentry-native是什么基于C/C++的native版,SDK编译sentry-SDK接入本地工程接入我们自己的工程关于配置自定义配置利...
    99+
    2024-04-02
  • Python编程:接口
    1.Python文化中的接口和协议         在Python中,我们把协议定义为非正式的接口,是让Python这种动态类型语言实现多态的方式。那么,接口在动态类型语言中是怎么运作的呢?         首先,基本的事实是,Python...
    99+
    2023-10-27
    python
  • C++文件操作,超级详细
    目录 常用的文件操作方式:打开文件打开方式参数以只读方式打开文件以只写方式打开文件以追加方式打开文件文件流迭代器 常用的文件操作方式: FILE 结构体:FILE 结构体是 C 语言中...
    99+
    2023-10-18
    c++ ios 开发语言
  • C++ 回调接口设计和二进制兼容详细
    目录1、疑问2、二进制兼容3、编译环境4、动态链接库5、C++风格,虚函数接口例子6、进一步讨论二进制兼容7、C风格的回调,如何做二进制兼容1、疑问 我们在开发一个视频编辑 SDK。...
    99+
    2024-04-02
  • SpringBootJWT接口验证实现流程详细介绍
    目录添加pom.xml修改配置文件创建简单的测试接口使用拦截器实现需求:只有用户登录成功后,才能访问其它接口,否则提示需要进行登录 项目仓库地址:https://gitee.com/...
    99+
    2024-04-02
  • Java中详细解析Map接口
    目录Map详解:Map基本操作:hashMap原理:Put方法:Get方法:Map的遍历:TreeMapLinkedHashMap:对比下Hashmap、Hashtable和Conc...
    99+
    2024-04-02
  • SpringApplicationContext接口功能详细介绍
    第一步,我们先来看这个接口的内部结构,了解别人的内部,知己知彼,百战不殆: 这个接口的扩展功能主要体现在它继承的四个接口上: MessageSource:国际化功能Resource...
    99+
    2023-02-06
    Spring ApplicationContext接口 Spring ApplicationContext
  • 网络编程(详细)
    文章目录 网络编程的概念网络模型OSI 七层模型七层模型释义通信特点 TCP/IP 五层模型区别 网络编程的目的网络编程中的两个要素 IP 地址IP 地址类型IP 地址 `J...
    99+
    2023-09-13
    网络 服务器 网络协议
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作