IUserCommon<T> 接口继承于IInsert<T>, IModify<T>, IDelete<string>, ISelect<T>,
IAdmin 继承 IUserCommon<AdminInfo>,
操作类Adimin 继承于IAdmin接口问题是:
我想在Adimin 中实现接口IInsert<T>中的ApplicationState InsertItem(T obj);方法,就是下面贴的ApplicationState IInsert<AdminInfo>.InsertItem(AdminInfo item) 不能加public属性,否则报错,但不加的话肯定无法访问。
怎么回事?是不是我的思路有问题?应该怎么写?Adimin admin = new Adimin ();
之后,public interface IInsert<T>
{
ApplicationState InsertItem(T obj);
}public interface IUserCommon<T> : IInsert<T>, IModify<T>, IDelete<string>, ISelect<T>
{
ApplicationState ModifyLoginPassword(string name, string newPassword, string oldPassword); ApplicationState ModifySafePassword(string name, string newPassword, string oldPassword); ApplicationState CheckName(string name); ApplicationState Login(string name, string password);
}public interface IAdmin : IUserCommon<AdminInfo>
{
ApplicationState ResetLoginPassword(string account, string safePwd, string liPwd);
}
public class Admin : IAdmin
{
ApplicationState IInsert<AdminInfo>.InsertItem(AdminInfo item)
{
SqlParameter[] parms = DBSQLHelper.GetCachedParameters(PROC_INSERT);
if (parms == null)
{
parms = new SqlParameter[]{
new SqlParameter(PARM_ACCOUNT,item.LoginName),
new SqlParameter(PARM_NAME,item.TrueName),
new SqlParameter(PARM_LOGIN_PASSWORD,item.LoginPassword),
new SqlParameter(PARM_SAFE_PASSWORD,item.SafePassword),
new SqlParameter(PARM_GRADE_ID,item.UserType),
new SqlParameter(PARM_REGISTER_DATE,item.RegisterDate)
}; DBSQLHelper.CacheParameters(PROC_INSERT, parms);
} try
{
if (DBSQLHelper.ExecuteNonQuery(CommandType.StoredProcedure, PROC_INSERT, parms) > 0)
return ApplicationState.Normal;
else
return ApplicationState.Fail; }
catch
{
return ApplicationState.Data_Already_Exists;
}
}
}
IAdmin 继承 IUserCommon<AdminInfo>,
操作类Adimin 继承于IAdmin接口问题是:
我想在Adimin 中实现接口IInsert<T>中的ApplicationState InsertItem(T obj);方法,就是下面贴的ApplicationState IInsert<AdminInfo>.InsertItem(AdminInfo item) 不能加public属性,否则报错,但不加的话肯定无法访问。
怎么回事?是不是我的思路有问题?应该怎么写?Adimin admin = new Adimin ();
之后,public interface IInsert<T>
{
ApplicationState InsertItem(T obj);
}public interface IUserCommon<T> : IInsert<T>, IModify<T>, IDelete<string>, ISelect<T>
{
ApplicationState ModifyLoginPassword(string name, string newPassword, string oldPassword); ApplicationState ModifySafePassword(string name, string newPassword, string oldPassword); ApplicationState CheckName(string name); ApplicationState Login(string name, string password);
}public interface IAdmin : IUserCommon<AdminInfo>
{
ApplicationState ResetLoginPassword(string account, string safePwd, string liPwd);
}
public class Admin : IAdmin
{
ApplicationState IInsert<AdminInfo>.InsertItem(AdminInfo item)
{
SqlParameter[] parms = DBSQLHelper.GetCachedParameters(PROC_INSERT);
if (parms == null)
{
parms = new SqlParameter[]{
new SqlParameter(PARM_ACCOUNT,item.LoginName),
new SqlParameter(PARM_NAME,item.TrueName),
new SqlParameter(PARM_LOGIN_PASSWORD,item.LoginPassword),
new SqlParameter(PARM_SAFE_PASSWORD,item.SafePassword),
new SqlParameter(PARM_GRADE_ID,item.UserType),
new SqlParameter(PARM_REGISTER_DATE,item.RegisterDate)
}; DBSQLHelper.CacheParameters(PROC_INSERT, parms);
} try
{
if (DBSQLHelper.ExecuteNonQuery(CommandType.StoredProcedure, PROC_INSERT, parms) > 0)
return ApplicationState.Normal;
else
return ApplicationState.Fail; }
catch
{
return ApplicationState.Data_Already_Exists;
}
}
}
解决方案 »
- C# .NET WebBrowser JavaScript
- 急。。。在线等帮我看一下哪里有错误。。。提示说没有返回的值
- Graphics g=e.Graphics 和Graphics g=this.CreateGraphics 区别?
- 函数返回值的问题!
- DevExpress xpo 的dataobject 用什么工具生产的?
- 在vs里面如何将做好的aspx文件转成ascx
- 请C#的高手进来一下,我想知道C#操作怎么没有VB.NET这么方便啊?
- c#更改窗体颜色
- 为什么【48小时最热讨论】里的贴全是5月3号和2号的?
- 《C#入门经典5版》中的小BUG,求原因
- 老问题了,C#中显示图片问题请教!
- 再问C#中隐藏基类虚函数(依然有神奇的代码)
如果要调用这个方法,可以转换成接口再调用接口的方法
ps:lz这里根本需要要用到接口的显式实现,直接用隐式实现好了,也就是传统的public+签名完全相同的方法
强转成IInsert<AdminInfo>再调用
要是嫌麻烦就别显示实现接口了
顺便说一句,好久没登csdn了,这论坛改的,真TM丑!