Nik*_*sev 9 c# language-features properties explicit-implementation
当我定义包含只写属性的接口时:
public interface IModuleScreenData
{
string Name { set; }
}
Run Code Online (Sandbox Code Playgroud)
并试图(天真地)明确地实施它,并且该财产也有一个公开可用的getter:
public class ModuleScreen : IModuleScreenData
{
string IModuleScreenData.Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
错误'IModuleScreenData.Name.get'添加了在接口成员'IModuleScreenData.Name'中找不到的访问者
但是,在使用这种替代语法之后,或多或少会出现错误:
public class ModuleScreen : IModuleScreenData
{
public string Name { get; IModuleScreenData.set; }
}
Run Code Online (Sandbox Code Playgroud)
我没有编译,我想我想做的事情是不可能的.我是对的,还是有一些秘密的酱语法呢?
Dan*_*ant 11
你可以这样做:
public class ModuleScreen : IModuleScreenData
{
string IModuleScreenData.Name
{
set { Name = value; }
}
public string Name { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
另外,我通常不建议使用仅限属性.一种方法可以更好地表达意图.
| 归档时间: |
|
| 查看次数: |
1643 次 |
| 最近记录: |