gpt4 book ai didi

c# - 在接口(interface)签名相同的接口(interface)之间转换

转载 作者:太空狗 更新时间:2023-10-30 00:05:41 24 4
gpt4 key购买 nike

当两个接口(interface)的签名相同时,是否可以从一个接口(interface)转换到另一个接口(interface)?以下源代码给出了 Unable to cast object of type 'ConsoleApplication1.First' to type 'ConsoleApplication1.ISecond'. 异常。

class Program
{
static void Main(string[] args)
{
IFirst x = new First();
ISecond y = (ISecond)x;
y.DoSomething();
}
}

public interface IFirst
{
string DoSomething();
}

public class First : IFirst
{
public string DoSomething()
{
return "done";
}
}

public interface ISecond
{
string DoSomething();
}

最佳答案

Is it possible to cast from one interface to another when both interface's signatures are same?

没有。就 CLR 和 C# 而言,它们是完全不同的类型。

您可以创建一个“桥接”类型,它包装了 IFirst 的实现并通过委托(delegate)实现了 ISecond,反之亦然。

关于c# - 在接口(interface)签名相同的接口(interface)之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428247/

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