gpt4 book ai didi

c# - 是否可以在公开可用的 getter 的同时显式实现属性 setter ?

转载 作者:太空狗 更新时间:2023-10-29 17:48:18 27 4
gpt4 key购买 nike

当我定义一个包含只写属性的接口(interface)时:

public interface IModuleScreenData
{
string Name { set; }
}

并尝试(天真地)明确地实现它,目的是让属性也有一个公开可用的 getter:

public class ModuleScreen : IModuleScreenData
{
string IModuleScreenData.Name { get; set; }
}

然后我得到以下错误:

Error 'IModuleScreenData.Name.get' adds an accessor not found in interface member 'IModuleScreenData.Name'

错误或多或少是预料之中的,然而,在这个替代语法之后:

public class ModuleScreen : IModuleScreenData
{
public string Name { get; IModuleScreenData.set; }
}

编译失败,我想我想做的事情是不可能的。我是对的,还是有一些 secret 的 sauce 语法?

最佳答案

你可以这样做:

public class ModuleScreen : IModuleScreenData
{
string IModuleScreenData.Name
{
set { Name = value; }
}

public string Name { get; private set; }
}

附带说明一下,我通常不推荐只设置属性。一种方法可能更能表达意图。

关于c# - 是否可以在公开可用的 getter 的同时显式实现属性 setter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16551498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com