从另一个类方法调用类方法

9 浏览
0 Comments

从另一个类方法调用类方法

我从我的主代码中调用一个类meth2的方法,该方法调用另一个类meth1的方法。对我来说,尊重这个结构很重要。

这些方法对之前在类中定义的值进行赋值,但是在我的命令窗口中无法得到正确的结果(只是0而不是132)。我想我可能漏掉了什么。

有人有想法吗?以下是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace workingWithClasses
{
    class meth1
    {
        public int op1;
        public int multiply(int mult)
        {
            return op1 = 44 * mult;
        }
    }
    class meth2
    {
        public int CallFuncsClass(int multiplicator)
        {
            return m1.multiply(int multiplicator);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            meth1 m1 = new meth1();
            meth2 m2 = new meth2();
            m2.CallFuncsClass(3);
            int result_m1 = m1.op1;         
            Console.WriteLine(opm1);
            Console.ReadKey();
        }
    }
}

非常感谢!

0
0 Comments

在上述代码中,我们可以看到有一个类方法 `multiply`,它接受一个参数 `mult`,并返回一个整数值。但是,在调用该方法时,它是通过另一个类方法 `meth1` 来调用的。

问题的出现原因是,我们试图从一个类方法中调用另一个类方法,但是我们没有正确地引用和调用方法。

要解决这个问题,我们需要做两件事:

1. 将 `multiply` 方法设置为静态方法。这样,我们可以直接通过类名调用该方法,而无需创建类的实例。我们可以将 `multiply` 方法声明为静态方法,如下所示:

public static int multiply(int mult)

2. 修改调用 `multiply` 方法的代码。我们应该使用正确的语法来引用和调用 `multiply` 方法。我们可以像下面这样调用 `multiply` 方法:

return ClassName.multiply(multiplicator);

这样,我们就可以正确地从一个类方法中调用另一个类方法了。通过将 `multiply` 方法设置为静态方法,并使用正确的语法来引用和调用方法,我们可以解决这个问题。

0
0 Comments

问题:从另一个类方法调用类方法的原因是什么?解决方法是什么?

在给定的代码中,return m1.multiply(int multiplicator);这一行代码放错了位置。需要先定义m1是什么。我猜你想要进行依赖注入。你可以通过构造函数实现这一点,所以代码应该如下:

class meth2
{
    private meth1 _m1;
    meth2(meth1 m1)
    {
        if(m1 == null) throw new ... // 检查输入参数
        _m1 = m1;
    }
    public int CallFuncsClass(int multiplicator)
    {
        return _m1.multiply(int multiplicator);
    }
}

使用方法如下:

meth1 m1 = new meth1();
meth2 m2 = new meth2(m1);
m2.CallFuncsClass(3);

额外的注意事项:

- 正确命名你的类,不要使用meth1这样的名称,应该使用Calculator之类的名称

- 不要使用公共字段:public int op1;,应该使用私有字段

- 通常你希望你的类是公共的,默认情况下类是internal的。这样可以在单个库之外使用它

- 检查参数的正确值,如果有错误则抛出异常

0
0 Comments

问题的出现原因:在meth2类的CallFuncsClass方法中,想要调用meth1类的multiply方法,但由于meth1类的实例化是在meth2类的成员变量中进行的,因此无法直接通过meth1类的类名来调用multiply方法。

解决方法:需要先创建meth1类的实例对象,然后通过该对象来调用multiply方法。

整理成文章如下:

在上述代码中,我们可以看到有两个类meth1和meth2,meth1类中有一个multiply方法用于进行乘法运算,而meth2类中的CallFuncsClass方法想要调用meth1类的multiply方法并进行运算。

然而,在meth2类的CallFuncsClass方法中,我们发现meth1类的实例化是在meth2类的成员变量中进行的,因此无法直接通过meth1类的类名来调用multiply方法。这就导致了问题的出现,我们需要找到解决方法。

解决方法就是需要先创建meth1类的实例对象,然后通过该对象来调用multiply方法。在上述代码中,我们可以看到在meth2类的成员变量中创建了一个meth1类的实例对象m1。然后在CallFuncsClass方法中,我们通过该对象m1来调用multiply方法,实现了meth2类调用meth1类的multiply方法的目的。

通过以上的解决方法,我们可以成功调用meth1类的multiply方法,并得到正确的运算结果。

0