C# 如何禁用从接口到实现接口的类的类型转换
如何禁用从接口IFoo到类栏的转换?有可能吗 组件一 组件二C# 如何禁用从接口到实现接口的类的类型转换,c#,inheritance,interface,C#,Inheritance,Interface,如何禁用从接口IFoo到类栏的转换?有可能吗 组件一 组件二 我可以阻止Bar将secretFoo强制转换为type Bar,从而访问SecretValue的值吗?将Bar的基类从Foo更改为IFoo,将属性secretFoo从typeIFoo更改为Foo public class Bar : IFoo { private Foo secretFoo; public string Name { get { return
我可以阻止Bar将secretFoo强制转换为type Bar,从而访问SecretValue的值吗?将
Bar
的基类从Foo
更改为IFoo
,将属性secretFoo
从typeIFoo
更改为Foo
public class Bar : IFoo
{
private Foo secretFoo;
public string Name {
get
{
return secretFoo.Name;
}
}
}
SecretValue是公共栏,在任何情况下都可以访问SecretValue属性。我不明白你的问题你是说你想阻止从
IFoo
到Foo
的转换,对吗?您无法访问SecretValue
,即使您将其强制转换为Bar
。您可以将其设置为internal get
@Simonare。我会这样做,但是我需要在第三个程序集中输入SecretValue的值。我认为您不能这样做。甚至微软也有我们可以看到的内部程序集,但在他们的评论中,他们建议最终用户不要使用这些程序集。
public class Bar : Foo
{
private IFoo secretFoo;
}
public class Bar : IFoo
{
private Foo secretFoo;
public string Name {
get
{
return secretFoo.Name;
}
}
}