ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-ExplicitInterface(显示接口)
1.A,示例(Sample) 返回顶部

显式接口 实现示例

本示例演示了如何显式地实现接口成员以及如何从接口实例访问这些成员。有关背景信息,请参见接口(C# 编程指南).

安全说明

提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任。

在 Visual Studio 中生成并运行“显式接口实现”示例

  1. 在“解决方案资源管理器”中,右击“ExplicitInterface1”项目并单击“设为启动项目”。

  2. 在“调试”菜单上,单击“开始执行(不调试)”。

  3. 对 ExplicitInterface2 重复前面这些步骤。

从命令行生成并运行“显式接口实现”示例

  1. 使用“更改目录”命令转到“ExplicitInterface1”目录。

  2. 键入以下命令:

    csc explicit1.cs
    explicit1
  3. 使用“更改目录”命令转到“ExplicitInterface2”目录。

  4. 键入以下命令:

    csc explicit2.cs
    explicit2
1.B,示例代码1(Sample Code)返回顶部

1.B.1, explicit1.cs

// 版权所有(C) Microsoft Corporation。保留所有权利。
// 此代码的发布遵从
// Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
//
//版权所有(C) Microsoft Corporation。保留所有权利。 // explicit1.cs
interface IDimensions
{
float Length();
float Width();
} class Box : IDimensions
{
float lengthInches;
float widthInches; public Box(float length, float width)
{
lengthInches = length;
widthInches = width;
}
// 显式接口成员实现:
float IDimensions.Length()
{
return lengthInches;
}
// 显式接口成员实现:
float IDimensions.Width()
{
return widthInches;
} public static void Main()
{
// 声明类实例“myBox”:
Box myBox = new Box(30.0f, 20.0f);
// 声明接口实例“myDimensions”:
IDimensions myDimensions = (IDimensions) myBox;
// 打印出盒子的尺寸:
/* 下列注释行将产生编译
错误,因为这些行尝试从类实例访问显式实现的
接口成员: */
//System.Console.WriteLine("Length: {0}", myBox.Length());
//System.Console.WriteLine("Width: {0}", myBox.Width());
/* 从接口的实例调用方法,
以打印出盒子的尺寸: */
System.Console.WriteLine("Length: {0}", myDimensions.Length());
System.Console.WriteLine("Width: {0}", myDimensions.Width());
}
}

1.B.2,

1.B,示例代码2(Sample Code)返回顶部

1.B.1, explicit2.cs

// 版权所有(C) Microsoft Corporation。保留所有权利。
// 此代码的发布遵从
// Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
//
//版权所有(C) Microsoft Corporation。保留所有权利。 // explicit2.cs
// 声明英制单位接口:
interface IEnglishDimensions
{
float Length();
float Width();
}
// 声明公制单位接口:
interface IMetricDimensions
{
float Length();
float Width();
}
// 声明实现以下两个接口的“Box”类:
// IEnglishDimensions 和 IMetricDimensions:
class Box : IEnglishDimensions, IMetricDimensions
{
float lengthInches;
float widthInches;
public Box(float length, float width)
{
lengthInches = length;
widthInches = width;
}
// 显式实现 IEnglishDimensions 的成员:
float IEnglishDimensions.Length()
{
return lengthInches;
}
float IEnglishDimensions.Width()
{
return widthInches;
}
// 显式实现 IMetricDimensions 的成员:
float IMetricDimensions.Length()
{
return lengthInches * 2.54f;
}
float IMetricDimensions.Width()
{
return widthInches * 2.54f;
}
public static void Main()
{
// 声明类实例“myBox”:
Box myBox = new Box(30.0f, 20.0f);
// 声明英制单位接口的实例:
IEnglishDimensions eDimensions = (IEnglishDimensions) myBox;
// 声明公制单位接口的实例:
IMetricDimensions mDimensions = (IMetricDimensions) myBox;
// 以英制单位打印尺寸:
System.Console.WriteLine("Length(in): {0}", eDimensions.Length());
System.Console.WriteLine("Width (in): {0}", eDimensions.Width());
// 以公制单位打印尺寸:
System.Console.WriteLine("Length(cm): {0}", mDimensions.Length());
System.Console.WriteLine("Width (cm): {0}", mDimensions.Width());
}
}

1.B.2,

1.C,下载地址(Free Download)返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

ylbtech-LanguageSamples-ExplicitInterface(显示接口)的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  2. C#显示接口实现和隐式接口实现

    在项目中可能会遇到显示接口实现和隐式接口实现.什么意思呢?简单来说使用接口名作为方法名的前缀,这称为“显式接口实现”:传统的实现方式,称为“隐式接口实现”.隐式接口实现如下: interface IS ...

  3. 华为交换机在Telnet登录下自动显示接口信息

    因为用console连接交换机,默认是自动显示接口信息的,比如down掉一个接口后,会自动弹出接口被down掉的信息,但是在telnet连接下,默认是不显示这些信息的,需要开启后才可显示. 1.首先开 ...

  4. 基于FPGA的HDMI高清显示接口驱动

    HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合影像传输的专用型数字化接口,可同时传送音频和 ...

  5. .netcore2.1使用swagger显示接口说明文档

    项目之前开发完接口后,我们还需要写接口说明文档,现在有了swagger方便了很多,可以网页版直接测试,当然了也减少了我们的工作量. 使用swagger生成接口说明文档,大致需要2个步骤 1.从“管理 ...

  6. 谈高清显示接口HDMI、RGB、LVDS、MIPI、eDP、mini-LVDS、V-By-One

    近年来随着电子产业的高速发展,智能显示设备也取得了辉煌的成就,高清显示得到了消费者的青睐.目前高清显示协议接口有RGB.LVDS.MIPI.eDP.HDMI.miniLVDS.V-by-One等,由于 ...

  7. 【c# 学习笔记】显示接口实现方法

    在接口  一张中,使用了隐式的接口实现方式,即在实现代码中没有制定实现那个接口中的CompareTo方法.相应地,自然就有显式的 接口实现方式,它指的是在实现过程中,明确指出实现哪一个接口中的哪一个方 ...

  8. VGA/DVI/HDMI/DP/Type-C等常用显示接口对比介绍

    在我们的生活中,无论是电脑.电视还是投影设备等等,都离不开视频输出接口,尤其在显卡上面,通常会出现3种甚至更多的接口.很多人并不了解其中的区别,觉得只要有画面输出就可以了,其实对于很多显示器来说并非如 ...

  9. ASP.NET Core Swagger 显示接口注释

    在Startup中 services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Info { Title ...

随机推荐

  1. bzoj 3212 线段树

    裸的线段树 /************************************************************** Problem: User: BLADEVIL Langua ...

  2. linux下面which whereis find locate的使用

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which    ...

  3. LeetCode 2 :Swap Nodes in Pairs

    我的代码是这样的: class Solution { public: ListNode *swapPairs(ListNode *head) { ; ; ListNode *listA; ListNo ...

  4. pool.map的第二个参数想传入多个咋整?

    from functools import partial from multiprocessing import Pool as ThreadPool pageurls=[] if maxpage: ...

  5. 利用php设置url转发 - 解决空间不提供子目录绑定功能的问题

    由于很多新手都是使用的虚拟空间都是最便宜的那种,这空间一般不支持子目录绑定.但是很多朋友又想设置几个不同的二级域名访问不同的网站程序.于是大家找到了域名url转发,但是由于国家政策的原因,许多服务商暂 ...

  6. django使用celery进行耗时任务的优化

    # 原创,转载请留言联系 在用django做项目的时候,做到注册模块时,需要发送短信验证码.本来简简单单的做好了,后来优化的时候发现,发送短信验证码的时候需要一点时间,在这个时间之内程序是阻塞的,用户 ...

  7. .NET DataSet DataTable 导出excel

    public void CreateExcel(DataSet ds, string FileName) { HttpResponse resp; resp = Page.Response; resp ...

  8. 【C++】隐式类型转换和 explicit关键字

    来自:黄邦勇帅 1. 当类中带有一个参数的构造函数时,将执形对象的隐式转换,比如有类 A,有一个带有一个参数的构造函数A(int i){}则当出现语句A m=1;就会调用带有一个参数的构造函数来创建对 ...

  9. Tornado 模块概述

    Tornado模块分类 1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 t ...

  10. python 连接ubuntu xampp mysql

    >>> import MySQLdb >>> db=MySQLdb.connect(user="root",passwd="" ...