在学习一个程序时我遇到了这个代码。在'<>
里面的H是什么public interface IResult<H>
{
bool IsSuccess { get; set; }
string Message { get; set; }
H Data { get; set; }
}
public interface Employee {
int ID { get; set; }
string Sex { get; set; }
string Name { get; set; }
IResult Save();
}
如果有人可以解释Iresult和H Data属性
,那将非常有帮助答案 0 :(得分:4)
它是Generic Type,意味着您可以替换其中的任何类型并具有类型安全类。例如:
// it's an interface, you can't actually do this (of course). If it was a
// normal class, then no problem. This is just for demonstration
IResult<string> x = new IResult<string>();
x.Data = "My String";
它可能与用户定义的类一起使用,例如来自数据库的东西,就像这样(只是猜测,看不到其他代码):
var result = myEmployeeRecord.Save(); // result is of type IResult<Employee>
if (result.IsSuccess) {
Display(result.Message);
} else {
Display("Error: " + result.Data.Name + " could not be saved");
// result.Data is of type "Employee"
}
答案 1 :(得分:1)
IResult<H>
是generic interface,它允许您在编译类型中传入一个类型,其中H
是类型。您可以像这样使用它:
IResult<Employee> Save();
这意味着类型将为Emloyee
。如您所见,界面包含一个属性:
H Data { get; set; }
H
将成为您在上面指定的类型,因此在这种情况下为Employee
。