我正在尝试在我的UserRequest
类中添加generize list作为类成员,如下所示
public class UserRequest<T> where T : RealmObject
{
public String userName { get; set; }
public String password { get; set; }
public String userId { get; set; }
public int page { get; set; }
public IList<T> requestList { get; set; }
}
现在,每当我想发送多个Contact
或Customer
数据时,我只需使用以下请求
UserRequest<Contact> userRequest = new UserRequest<Contact>();
userRequest.userId = "112";
userRequest.requestList = contactList;
这将导致以下请求数据
{
"userId": "112",
"requsetList": [
{
"firstName": "john",
"lastName": "j",
"contactNumber": "(992) 414-9999",
}
]
}
如果是customer
,我将使用userRequest.requestList = customerList
,这种方法可以帮助我避免为客户和联系人提供绝对的服务
在UserRequest类
但问题是当我只是想创建简单的UserRequest时,我必须在T中传递一些内容。
例如,如果我想将它用于登录请求,下面的代码将无效,那么有没有办法将UserRequest
用于通用请求和非泛型请求
UserRequest userRequet = new UserRequest();
userRequest.userName ="abc";
userRequest.password="1234";
答案 0 :(得分:1)
UserRequest
和UserRequest<T>
是两种不同的类型 - 如果UserRequest
是您编写的唯一课程,则无法创建UserRequest<T>
。
如您所见,UserRequest<T>
要求设置通用类型。您可以为登录创建UserRequest<object>
,但这有点代码味道并且会破坏RealmObject
约束。更好的是使泛型类型成为非泛型类型的子类:
public class UserRequest
{
public String userName { get; set; }
public String password { get; set; }
public String userId { get; set; }
}
public class UserRequest<T> : UserRequest
where T : RealmObject
{
public int page { get; set; }
public IList<T> requestList { get; set; }
}