Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用自动属性显式实现接口

使用自动属性显式实现接口
EN

Stack Overflow用户
提问于 2010-10-11 09:31:15
回答 2查看 3.4K关注 0票数 14

有没有办法使用自动属性显式地实现一个接口?例如,考虑以下代码:

代码语言:javascript
运行
AI代码解释
复制
namespace AutoProperties
{
    interface IMyInterface
    {
        bool MyBoolOnlyGet { get; }
    }

    class MyClass : IMyInterface
    {
        static void Main(){}

        public bool MyBoolOnlyGet { get; private set; } // line 1
        //bool IMyInterface.MyBoolOnlyGet { get; private set; } // line 2
    }
}

这段代码会编译。但是,如果您将第1行替换为第2行,它将无法编译。

(这并不是说我需要让第二行工作--我只是好奇。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-11 09:37:50

实际上,该语言不支持这种特定的安排(通过自动实现的属性显式实现get-only接口属性)。因此,要么手动完成(使用字段),要么编写一个私有的自动实现的属性,并对其进行代理。但老实说,当你做完这件事的时候,你可能已经使用了一个字段...

代码语言:javascript
运行
AI代码解释
复制
private bool MyBool { get;set;}
bool IMyInterface.MyBoolOnlyGet { get {return MyBool;} }

或者:

代码语言:javascript
运行
AI代码解释
复制
private bool myBool;
bool IMyInterface.MyBoolOnlyGet { get {return myBool;} }
票数 15
EN

Stack Overflow用户

发布于 2010-10-11 09:38:45

问题是该接口只有getter,而您试图使用getter和setter显式地实现它。

当显式实现接口时,仅当引用接口类型时才会调用显式实现,因此...如果接口只有getter,就没有办法使用setter,所以在那里设置setter是没有意义的。

例如,这将编译:

代码语言:javascript
运行
AI代码解释
复制
namespace AutoProperties
    {
        interface IMyInterface
        {
            bool MyBoolOnlyGet { get; set; }
        }

        class MyClass : IMyInterface
        {
            static void Main() { }

            bool IMyInterface.MyBoolOnlyGet { get; set; } 
        }
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3905000

复制
相关文章
C#-接口与显式接口实现
继承IEquatable的类必须实现Equals的方法,IEquatable<T>不提供Equals的实现。 接口可以包含方法、属性、事件、索引器。 接口不能包含常量、字段、运算符、实例构造函数、终结器或类型。接口成员会自动称为公有成员,不能包含任何访问符。成员也不能是静态成员。
祝你万事顺利
2019/08/23
6910
温故知新:接口的隐式实现与显式实现
这二者的区别,仅在一个类同时实现多个接口,且多个接口中有相同的方法名字定义时,才有比较的意义。 using System; namespace InterfaceTest { class Program { static void Main(string[] args) { TestAB ab = new TestAB(); ab.HelloWorld(); //Hello World!
菩提树下的杨过
2018/01/23
7310
显式锁
Lock和ReentrantLock: 与内置加锁机制(synchronized)不同的是,Lock提供到了一种无条件的、可轮询的、定时的以及课中断的锁获取操作,所有加锁和解锁的方式都是显式的。Lock接口方法声明如下: public interface Lock{ void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long
SuperHeroes
2018/05/31
4450
接口测试平台代码实现9:菜单常显
3. 把菜单作为后台唯一能返回的html,也就是唯一的render函数内的那个html参数。然后在菜单welcome.html 中 把其他各个页面都当作一个子页面 一个来引入。
我去热饭
2022/05/19
8501
接口测试平台代码实现9:菜单常显
【Kotlin】接口 ( 声明 | 实现 | 接口方法 | 接口属性 | 接口覆盖冲突 | 接口继承 )
① 声明与实现 : 使用 interface 关键字声明接口 , 实现时需要重写所有的抽象成员 ( 属性 / 方法 ) ;
韩曙亮
2023/03/27
1.4K0
异步编程 - 02 显式使用线程和线程池实现异步编程
我们主要探讨如何显式地使用线程和线程池实现异步编程,这包含如何显式使用线程实现异步编程以及使用线程编程的缺点,如何显式使用线程池实现异步编程以及线程池实现原理。
小小工匠
2023/09/07
2710
异步编程 - 02 显式使用线程和线程池实现异步编程
[android] 隐式意图和显式意图的使用场景
看到Display.com.android.mms/.ui.ComposeMessageActivity
唯一Chat
2019/09/10
1.1K0
技术分享 | Web自动化之显式等待与隐式等待
等待就是当运行代码时,如果页面的渲染速度跟不上代码的运行速度,就需要人为的去限制代码执行的速度。
霍格沃兹测试开发
2022/04/27
9980
​技术分享 | Web自动化之显式等待与隐式等待
等待就是当运行代码时,如果页面的渲染速度跟不上代码的运行速度,就需要人为的去限制代码执行的速度。
Hogwarts_测试
2022/04/27
8910
app自动化测试(Android)--显式等待机制
WebDriverWait 通常与 until 和 util_not 结合使用,Java 与 Python 用法相同。
霍格沃兹测试开发Muller老师
2023/01/03
7070
使用强类型的Include显式预加载
Include(i=>i.SubEntity1.Select(j=>j.SubSubEntity1))
全栈程序员站长
2022/07/05
4450
显式原型与隐式原型
* 函数的prototype属性: 在定义函数时自动添加的, 默认值是一个空Object对象
李才哥
2020/03/28
4480
显式原型与隐式原型
上手隐式锁,显式锁
对于聚簇索引记录来说,有一个 trx_id 隐藏列,该隐藏列记录着最后改动该记录的 事务id 。那么如果在当前事务中新插入一条聚簇索引记录后,该记录的 trx_id 隐藏列代表的的就是 当前事务的 事务id ,如果其他事务此时想对该记录添加 S锁 或者 X锁 时,首先会看一下该记录的trx_id 隐藏列代表的事务是否是当前的活跃事务,如果是的话,那么就帮助当前事务创建一个 X锁 (也就是为当前事务创建一个锁结构, is_waiting 属性是 false ),然后自己进入等待状态 (也就是为自己也创建一个锁结构, is_waiting 属性是 true )。
一个风轻云淡
2022/11/15
5220
上手隐式锁,显式锁
通过cycler实现属性的自动映射
在matplotlib中,默认存在一个颜色 的自动映射机制,当我们绘制多条直线时,会通过这个颜色映射机制来为每条直线赋予不同的颜色,代码如下
生信修炼手册
2020/09/14
6840
JavaScript显式原型与隐式原型
在JavaScript中,每个函数都有一个特殊的属性称为"prototype"。这个"prototype"属性是一个对象,它定义了该函数创建的对象的共享属性和方法。
堕落飞鸟
2023/05/17
3290
MySQL显式事务与隐式事务
显式事务是指在应用程序中明确指定事务的开始和结束,使用BEGIN、COMMIT和ROLLBACK语句来控制事务的执行。
堕落飞鸟
2023/05/11
1.2K0
快速实现接口自动化
前面介绍了用postman+newman做接口自动化,其实这个工具不太适合做大型的自动化测试,主要是不太方便扩展和维护。 最灵活的当然是用python来写,可是python写起来比较需要时间。 有没有一种介于这两者之间的。 我认为是有的,我觉得用jmeter来做自动化完全胜任。 它可以用各种断言,各种参数化,各种条件机制。
赵云龙龙
2020/08/25
8500
快速实现接口自动化
使用JMeter+ant+jenkins实现接口自动化测试
搭建环境 资源下载 Linux build文件、报告模版,以及邮件源码格式下载方式见文章末尾 一、配置ANT 1. 首先下载Ant压缩包,下载地址:http://ant.apache.org/b
jmeter技术研究
2019/10/19
1.6K0
使用JMeter+ant+jenkins实现接口自动化测试
使用Jmeter+Maven+Jenkins实现接口自动化测试
一、环境搭建 安装 jdk、eclipse、git JDK下载地址:http://rj.baidu.com/soft/detail/14459.html?ald JDK安装参考文档:http://bl
jmeter技术研究
2019/10/19
1.5K0
使用Jmeter+Maven+Jenkins实现接口自动化测试
使用Python调用Nessus 接口实现自动化扫描
之前在项目中需要接入nessus扫描器,研究了一下nessus的api,现在将自己的成果分享出来。 Nessus提供了丰富的二次开发接口,无论是接入其他系统还是自己实现自动化扫描,都十分方便。 同时Nessus也提供了完备的API文档,可以在 Settings->My Account->API Keys->API documentation
Masimaro
2020/02/12
3.8K0

相似问题

使用显式接口实现

10

如何设置显式实现接口的属性?

11

发出属性的显式接口实现。

13

使用getter专用的自动属性(C# 6特性)显式实现接口

23

使用抽象方法显式实现接口

89
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档