我有个方法,比如叫
public bool Add(?,?)
{
...
}
我想做个接口或者抽象类规范这个方法,以后的类都派生自这个类,然后实现自己的add方法
但是在add的时候每个类的参数都是不一样的,怎么才能再抽象一下add的参数啊不知道我表达的清楚么?
public bool Add(?,?)
{
...
}
我想做个接口或者抽象类规范这个方法,以后的类都派生自这个类,然后实现自己的add方法
但是在add的时候每个类的参数都是不一样的,怎么才能再抽象一下add的参数啊不知道我表达的清楚么?
解决方案 »
- 写发贴机器人遇到的一个问题
- gridview数据源自动绑定怎样将编辑列放到表格后面
- 1个多线程问题
- .net 配件 反编译->.IL 再编译成配件 运行出错
- 我刚装的visual studio.net,在创建对象时提示Automation服务器不能创建对象
- 一段非常实用的代码,文件加密
- 介绍一款“.Net 反编译工具”Reflector
- 程序在2000的平台下 调试正常了 到2003的平台下 居然不正常 哪个大哥解释一下
- 在线求救,十万火急!dataGrid问题,各位高手来指导!
- C# 操作OutLook 自动填写收件人地址什么实现
- WinForm中怎么实现窗体继承
- C#里如何将两个8位的byte组合成一个16位的int
{
}调用的时候将参数重新封装.
但是你方法体中如何引用呢?
2.不用泛型,用object进行代替,在重载类中确定object类型。
每个表都当作一个参数对象传入方法里,然后再操作
Public Function Test(ByVal Param() As ParamArrayAttribute) As Object
Return MsgBox(Param.Length.ToString)
End Function
Public Function Test(ByVal Param() As ParamArrayAttribute) As Object
Return MsgBox(Param.Length.ToString)
End Function
主要是想解决个数的问题,现在是两个参数,但是要是有3个参数的时候,如何override
{
Test() { }
public virtual bool Add<T>(T t1,T t2){ return true; }
}
public interface ITestAdd
{
object Add(ParamArrayAttribute[] Param);
}
public bool Add(params object [] o)
{
//...
}
public virtual string mm(params object[] parms)2. 个人意见是传入一个对象类.子类方法只需要继承对象类ParmClass并重写成需要的格式就可以了.
public virtual string mm(ParmClass a)
函数(string s1,params object[] args)
{
foreach(object obj in args)//对参数数组循环
{
if(obj is int){}
if(obj is string){}
.........
}
}void main()
{
函数("string1");
函数("string1",67,3.14,"hello");
函数("string1","113",1100);
}你试试这个看行不行。
定义接口:
public interface IBaseAdd<T>
{
bool Add(T t1, T t2);
bool Add(T t1, T t2, T t3);
bool Add(params T[] param);
}
定义抽象类继承自接口IBaseAdd
public abstract class absAdd<T> : IBaseAdd<T>
{ #region IBaseAdd<T> Members public virtual bool Add(T t1, T t2)
{
throw new Exception("The method or operation is not implemented.");
} public virtual bool Add(T t1, T t2, T t3)
{
throw new Exception("The method or operation is not implemented.");
} public virtual bool Add(params T[] param)
{
throw new Exception("The method or operation is not implemented.");
} #endregion
}
然后你的代码去继承抽象基类,override自己想要的方法
public class TAdd : absAdd<int>
{
public override bool Add(int t1, int t2)
{
return base.Add(t1, t2);
} public override bool Add(int t1, int t2, int t3)
{
return base.Add(t1, t2, t3);
}
}
搞定
--------------------------------------------------------------------------------超时时间已到。在操作完成之前超时时间已过或服务器未响应。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[SqlException (0x80131904): 超时时间已到。在操作完成之前超时时间已过或服务器未响应。]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800131
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) +556
System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) +164
System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) +34
System.Data.SqlClient.TdsParserStateObject.ReadBuffer() +44
System.Data.SqlClient.TdsParserStateObject.ReadByte() +17
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +79
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
System.Data.SqlClient.SqlDataReader.get_MetaData() +62
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReader() +84
CSDN.Community.TopicDatabase.TopicDataProvider_PointForum.AskExpertTopic(String UserName, Int32 PageSize, Int32 CurrPage, Boolean toUser, Boolean checkout, Int32& count, List`1& TopicSet) +698
CSDN.Community.PointForum.WebControls.TopicToUserPage.OnLoad(EventArgs e) +712
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433 asdsadasd“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------超时时间已到。在操作完成之前超时时间已过或服务器未响应。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[SqlException (0x80131904): 超时时间已到。在操作完成之前超时时间已过或服务器未响应。]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800131
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) +556
System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) +164
System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) +34
System.Data.SqlClient.TdsParserStateObject.ReadBuffer() +44
System.Data.SqlClient.TdsParserStateObject.ReadByte() +17
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +79
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
System.Data.SqlClient.SqlDataReader.get_MetaData() +62
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReaderSqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
System.Data.SqlClient.SqlCommand.ExecuteReader() +84
+84
+84
+84
+84
+84
CSDN.Community.TopicDatabase.TopicDataProvider_PointForum.AskExpertTopic(String UserName, Int32 PageSize, Int32 CurrPage, Boolean toUser, Boolean checkout, Int32& count, List`1& TopicSet) +698
CSDN.Community.PointForum.WebControls.TopicToUserPage.OnLoad(EventArgs e) +712
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436_MetaData() +62
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,