-3

我在我的 WCF 中实现了工厂设计方法,但我猜这行有一些错误:

return svc.Calculation(int value1 + int value2);

这是我的其他代码:

namespace CompositeWCF
{
public class Service1 : IService1
{
    public int Calculation(int value1, int value2, string calType)
    {
        try
        {
          IService1 svc;

          switch (calType)
            {
                case "addition":
                    svc = new addition();

                case "subtraction":

                    svc = new subtraction();

                case "multiplication":

                    svc = new multiplication();

                case "division":
                    svc = new division();

            }

          return svc.Calculation(int value1 + int value2);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return 0;
        }
    }
}

“加法”、“减法”、“乘法”、“除法”有四个类

有类似的代码

    namespace CompositeWCF
    {
    class addition:IService1
    {
        public int Calculation(int value1, int value2)
        {
            return value1 + value2;
        }
    }
}

这应该获取用户输入,即两个值和计算类型,并使用它们从特定类执行计算。

4

1 回答 1

1

首先:说“我猜这条线有错误”而不是实际提供错误..会让你投反对票。如果我要复制并粘贴大量代码给您并说“有错误。请找到它”..您能做到吗?

但是,因为你的错误很明显..这是我的答案:

return svc.Calculation(int value1 + int value2);
                       ^^^          ^^^
                // Remove this     Remove this

此外,正如 David 在评论中指出的那样,该函数采用两个单独的参数:

return svc.Calculation(value1, value2);

返回变量时不需要包含类型名称。仅在声明变量时。您可能会在某个时候遇到强制转换,如下所示:

return svc.Calculation((int)value1, (int)value2);
// Notice the parenthesis

..但是,您不需要在您的示例中。

于 2013-02-11T01:53:31.507 回答