WCF中的工厂方法模式出现一些错误.有人能指出我的错误吗

本文关键字:错误 我的 工厂 方法 模式 WCF | 更新日期: 2023-09-27 17:58:31

我在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;
        }
    }
}

这应该得到两个值和计算类型的用户输入,并使用它们来执行特定类的计算。

WCF中的工厂方法模式出现一些错误.有人能指出我的错误吗

首先:说"我想这一行有错误",但实际上没有提供错误。。会让你投反对票。如果我复制并粘贴大量代码给你,然后说"有错误。请找到它"。。你能吗?

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

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

然而,在您的示例中,您不需要这样做。