有个接口Itask,里面有个这样的方法Execute(IDictionary<string, object> parameters),A:Itask,然后我现在想在B类中执行这个Execute 方法。应该怎么调?

解决方案 »

  1.   


    new 了之后 试过了但是调EXCUTE方法报错,因为这里我 不希望传参数,其实就是我想用一个无参的方法重载一下来执行这个有参的。
    ITask IW = new myclass();
    Execute(IW);
            private void Execute(ICustomTask obj)
            {
                string a = string.Empty;
                if (obj != null)
                {
                    obj.Execute(IDictionary<string, object> parameters);
                }
            }
    这样也不行。
      

  2.   


    一定要这么用?
    obj.Execute(null);
    传null很可能会抛空引用
    那就obj.Execute(new Dictionary<string, object>())
      

  3.   


    一定要这么用?
    obj.Execute(null);
    传null很可能会抛空引用
    那就obj.Execute(new Dictionary<string, object>())
    new Dictionary<string, object>()这个没看懂,这样可以执行我A类中的带参数的方法么?
      

  4.   

    ITask IW = A as ITask();
    if (IW !=null)
     {
         IW .Execute(new Dictionary<string, object>());
     }
       这样可以么?
      

  5.   

    你应该修改Execute本身,如果现在的Execute方法,通过传递所谓的空参数导致无法正常调用,要么重写该方法,要么在本身方法中另作判断,因为现在并不是通用的
      

  6.   

    擦,这个不能修改,别人只给了个dll
      

  7.   


    +1
    不知道参数怎么传
    其实我就是想要B类执行的时候,跑一下A类中的这个方法。那你实在不知道传什么参数 那就 new A().Execute(new Dictionary<string, object>());
      

  8.   

    在问一下,那我这样A a= new A();
                   a.Execute(new Dictionary<string, object>());
    和 new A().Execute(new Dictionary<string, object>()); 有什么区别么?