接口如下:public interface IAdmin
{
/// <summary>
/// 添加新纪录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
//int InsertNewItem(AdminInfo info);
int InsertNewItem<T>(T info) ;
}我想在类admin和User里面实现InsertNewItem方法,参数分别为AdminInfo和UserInfo,怎么做?
{
/// <summary>
/// 添加新纪录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
//int InsertNewItem(AdminInfo info);
int InsertNewItem<T>(T info) ;
}我想在类admin和User里面实现InsertNewItem方法,参数分别为AdminInfo和UserInfo,怎么做?
解决方案 »
- 如何判断父窗体中是否已经弹出某个子窗体
- 直接打印Repor.rdlc文件【急】【跪求】!!!
- webbrowser触发超链接的点击事件(这个超链接是用来做事件处理,不是用来导航的)
- C#调试问题 显示出的SQL语句
- c# 调用宏 异步的问题
- 如何判断一个文本文件中是否存在指定的字符?
- 对你们来说肯定是一个简单的问题(UDP通信)
- C#报表控件reportViewer如何动态绑定其报表文件及数据集
- 在VS.NET 2005 中的ObjectSpace的MSD文档是怎么样生成的?
- 这里有谁用过windows.net?
- 求助各位老师们,关于一个队列各自处理自己事情的问题
- c#调用c++dll(答者有分)
{
/// <summary>
/// 添加新纪录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
//int InsertNewItem(AdminInfo info);
int InsertNewItem(T info);
}public class AdminInfo
{
//to do
}public class UserInfo
{
//to do
}public class admin:IAdmin<AdminInfo>
{
public int InsertNewItem(AdminInfo info)
{
int i = 0 ;
//to do
return i;
}
}public class User : IAdmin<UserInfo>
{
public int InsertNewItem(UserInfo info)
{
int i = 0;
//to do
return i;
}
}
{
public int InsertNewItem<AdminInfo>(AdminInfo info) {********}
}
public class UserInfo:IAdmin
{
public int InsertNewItem<UserInfo>(UserInfo info) {********}
}
//报错!!
//显示实现
public class Admin:IAdmin
{
public int IAdmin.InsertNewItem<AdminInfo>(AdminInfo info) {********}
}
//也报错
public interface mi
{
public bool MyMethod<T>(T t) where T : IMyInterface { }
}
只不过你现在是一个方法,
如果是多方法的话,就不太合理了.
除非把多个方法,分拆成独立的接口.public interface IAdmin
{
/// <summary>
/// 添加新纪录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
//int InsertNewItem(AdminInfo info);
int InsertNewItem<T>(T info);
}public class AdminInfo
{
//to do
}public class UserInfo
{
//to do
}public class admin : IAdmin
{
public int InsertNewItem<AdminInfo>(AdminInfo info)
{
int i = 0;
//to do
return i;
}
}public class User : IAdmin
{
public int InsertNewItem<UserInfo>(UserInfo info)
{
int i = 0;
//to do
return i;
}
}
{
/// <summary>
/// 添加新纪录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
//int InsertNewItem(AdminInfo info);
int InsertNewItem<T>(T info);
}public class AdminInfo
{
//to do
}public class UserInfo
{
//to do
}public class admin : IAdmin
{
int IAdmin.InsertNewItem<AdminInfo>(AdminInfo info)
{
int i = 0;
//to do
return i;
}
}public class User : IAdmin
{
int IAdmin.InsertNewItem<UserInfo>(UserInfo info)
{
int i = 0;
//to do
return i;
}
}
InsertNewItem<UserInfo>(UserInfo info)
根本不能识别UserInfo类型,报错说要我考虑显式实现,但是实现也不行
{
void PrintName(T t);
}
class Person
{
public string Name = "";
}
class PersonManager : IPerson<Person>
{
public void PrintName(Person t)
{
}
}
或用Where<T>
我的代码,没有报错.隐式实现要加public
显式实现去掉public