gpt4 book ai didi

c# - 在接口(interface)中创建通用属性

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

我想用方法 GetId() 创建一个接口(interface)。根据子项的不同,它可以是 int、string 或其他。这就是为什么我尝试使用返回类型对象(但我无法在子项中指定类型)并想尝试使用泛型。

我该怎么做?

我已经拥有的:

public interface INode : IEquatable<INode>
{
object GetId();
}

public class PersonNode : INode
{
object GetId(); //can be int, string or something else
}

public class WorkItemNode : INode
{
int GetId(); //is always int
}

谢谢!

最佳答案

要么改INode通用类型的接口(interface) interface INode<out T>正如其他答案所建议的那样。

或者,如果您不希望这样,请显式实现您的非泛型接口(interface)并提供一个类型安全的公共(public)方法:

public class WorkItemNode : INode
{
public int GetId() //is always int
{
...
// return the int
}

object INode.GetId() //explicit implementation
{
return GetId();
}

...
}

关于c# - 在接口(interface)中创建通用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827083/

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