作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个这样的界面:
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/
我是一名优秀的程序员,十分优秀!