gpt4 book ai didi

c# - 如何在 C# 接口(interface)中返回 Type T?

转载 作者:太空狗 更新时间:2023-10-29 20:53:12 26 4
gpt4 key购买 nike

我有一个这样的界面:

public interface IUser{
//some properties here

T ToDerived(User u);
}

我是界面开发的新手,所以这就是我想要完成的。我会有一个基类

public class User 

没有实现上述接口(interface)。然后我会有一个派生类

SalesUser : User, IUser
{
//no properties needed because they exist in the User class

SalesUser ToDerived(User u)
{
//code for converting a base User to a derived SalesUser
}
}

我想在 SalesUser 类中为 ToDerived(User u) 编写函数,但在界面中,我不知道如何定义它,因为我现在在界面中的 ToDerived 方法声明未编译。

我希望这是有道理的。

最佳答案

public interface IUser<T> where T : User
{
//some properties here

T ToDerived(User u);
}

SalesUser : User, IUser<SalesUser>
{
//no properties needed because they exist in the User class

SalesUser ToDerived(User u)
{
//code for converting a base User to a derived SalesUser
}
}

不确定这是否是您想要的,但我在接口(interface)上添加了泛型类型约束以确保泛型类型是 User 或继承自它。

关于c# - 如何在 C# 接口(interface)中返回 Type T?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10078188/

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