gpt4 book ai didi

c# - 如何隐藏实现

转载 作者:太空狗 更新时间:2023-10-29 21:50:56 25 4
gpt4 key购买 nike

假设我有一个类库,其中任何内部类都可以访问以下接口(interface):

interface myInterface
{
string myProperty { get; set; } // notice setter.
}

但是如果有人将这个类库添加到他们的项目中,他们将获得以下接口(interface):

public interface myInterface
{
string myProperty { get; }
}

执行此操作的最有效和可接受的方法是什么?一个接口(interface)是否实现了另一个?

最佳答案

让你的公共(public)界面只有 setter/getter :

public interface myInterface
{
string myProperty { get; }
}

然后从中派生另一个具有 setter 的仅供内部使用的接口(interface):

internal interface myInternalInterface : myInterface
{
new string myProperty { get; set; }
}

你可以让他们实现内部接口(interface):

class myImplementation : myInternalInterface
{
public string myProperty{get; set;}
}

如果您需要调用 setter,您可以将您的实例转换为内部接口(interface)并在上面调用它。不过,这种方法有点设计味道,所以请谨慎使用。

关于c# - 如何隐藏实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279699/

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