gpt4 book ai didi

c# - C# 中具有显式接口(interface)的对象初始值设定项

转载 作者:可可西里 更新时间:2023-11-01 09:10:38 27 4
gpt4 key购买 nike

如何在 C# 中使用具有显式接口(interface)实现的对象初始值设定项?

public interface IType
{
string Property1 { get; set; }
}

public class Type1 : IType
{
string IType.Property1 { get; set; }
}

...

//doesn't work
var v = new Type1 { IType.Property1 = "myString" };

最佳答案

你不能。访问显式实现的唯一方法是通过转换为接口(interface)。 ((IType)v).Property1 = "blah";

理论上,您可以围绕该属性包装一个代理,然后在初始化时使用该代理属性。 (代理使用对接口(interface)的转换。)

class Program
{
static void Main()
{
Foo foo = new Foo() { ProxyBar = "Blah" };
}
}

class Foo : IFoo
{
string IFoo.Bar { get; set; }

public string ProxyBar
{
set { (this as IFoo).Bar = value; }
}
}

interface IFoo
{
string Bar { get; set; }
}

关于c# - C# 中具有显式接口(interface)的对象初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578157/

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