作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有没有办法使用自动属性显式实现接口(interface)?例如,考虑这段代码:
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 行,它不会编译。
(并不是说我需要让第 2 行正常工作 - 我只是好奇。)
最佳答案
确实,该语言不支持该特定安排(通过自动实现的属性显式实现只获取接口(interface)属性)。因此,要么手动执行(使用字段),要么编写一个私有(private)的自动实现的 prop,并为其代理。但老实说,当您完成这些操作时,您还不如使用一个字段...
private bool MyBool { get;set;}
bool IMyInterface.MyBoolOnlyGet { get {return MyBool;} }
或:
private bool myBool;
bool IMyInterface.MyBoolOnlyGet { get {return myBool;} }
关于c# - 使用自动属性显式实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905000/
我是一名优秀的程序员,十分优秀!