我想编写一个C#方法,但是参数个数不确定,类型也不确定。比如:public static 方法名 (参数个数和类型不确定){}方法返回值类型也不确定,支持自定义吗?
参数个数和类型也不确定,支持自定义吗?
还有个需求,就是在这些参数个数和类型不确定中,需要加入一个参数,这个参数类型是另外一个方法。汗,我的C#基本功不太好,写不出来了,头疼啊头疼请各位指点一下,不胜感激。

解决方案 »

  1.   

    public delegate string DelegateMethod();
    public static T Method<T>(DelegateMethod delegateMethod,Params[] T items)
    {
    //操作
    }
      

  2.   

    参数个数不确定:有params
    类型也不确定:有泛型和泛型约束
    这个参数类型是另外一个方法:好吧,还有委托.
      

  3.   

    public delegate string DelegateMethod();
    public static T Method<T>(DelegateMethod delegateMethod,params T items)
    {
     T result=default(T);
    //操作
     return  result; 
    }
      

  4.   

    这个有点错误,sorry;
    要完成楼主的想法,要涉及的东西有点多,都不是很好理解
      

  5.   

    Params[] T items
      

  6.   

    参数不确定就用Params[] T items,直接加入参数。
    类型不确定用泛型  T Method<T>;给个例子你参考:
    1: public delegate void Operate<in T>(T instance);  //泛型参数,接收多参数
    2: class Program  
    3: {  
    4:     static void Main()  
    5:     { 
    6:         Operate<Foo> opFoo = new Operate<Foo>(DoSth);  //泛型类型接收不同类型
    7:         Operate<Bar> opBar = opFoo;  
    8:         opBar(new Bar());  
    9:     } 
    10:     static void DoSth(Foo foo) 
    11:     { 
    12:         //Others... 
    13:     } 
    14: }
      

  7.   


        public class Test<TDataContext> where TDataContext:DataContext,new()
        {
            public T GetEntity<T>(Expression<Func<T, bool>> predicate) where T : class
            {
                TDataContext db = new TDataContext();
                db.Connection.ConnectionString = connStr;
                return db.GetTable<T>().Where(predicate).FirstOrDefault();
            } 
        }