0

这是我的代码:

目的是添加两个大数字,首先在 2 个数组中输入两个数字,然后交换它们并添加它们,基于控制台,

我是 C# 的新手,所以请解释一下,记住我对代码的了解

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sum_Two_BIG_Numbes
{
    public class matrix
    {

        public int[] c;

        public void input(int[] a)
        {
            for (int i = 0; i < a.Length; i++)
            {

                a[i] = Convert.ToInt32(Console.ReadLine());

            }
        }
        public void Jamk(int[] a, int[] b, int[] c)
        {

            for (int i = 0; i < a.Length; i++)
            {
                int temp = a[i] + b[i];
                if ((temp < 10) && (c[i] != 1))
                {
                    c[i] = c[i] + temp;
                }
                else
                {
                    c[i] = c[i] + temp % 10;
                    c[i + 1] = c[i + 1] + temp / 10;

                }
            }


        }
        public void swap(int[] a)
        {

            for (int i = 0; i < a.Length; i++)
            {
                a[i] = a[a.Length - i];
            }

        }
    }
    class Program
    {
        public void Main(string[] args)
        {
            int[] a = new matrix();
            //int[] a = new int[30];
            int[] b = new int[30];
            int[] c = new int[30];
            Console.WriteLine("Enter First Number : ");
            matrix.input(a);


            Console.ReadLine();
        }
    }
}

我收到此错误“非静态字段需要对象引用......”

4

3 回答 3

2
matrix.input(a);

在哪里matrix声明(不是)。

int[] a = new matrix();

此外,您不能将 的实例分配matrixint[]. 没有从一个到另一个的隐式转换。虽然我不能说这是一个伟大的设计,但你想要的是这样的:

matrix a = new matrix();
a.c = new int[SomeSize];
// more code
a.input(b);  // or something similar...
于 2012-07-12T20:19:52.297 回答
0

您需要在 Main 方法中创建一个新的类矩阵实例,如下所示:matrix instance = new matrix(); 然后你可以调用矩阵类的方法。阅读静态和实例方法/属性/字段之间的差异。

于 2012-07-12T20:22:16.690 回答
0

您的代码实际上没有意义,但这就是我认为您的意思

public void Main(string[] args)
        {
            matrix m = new matrix();
            int[] a = new int[30];
            int[] b = new int[30];
            int[] c = new int[30];
            Console.WriteLine("Enter First Number : ");
            m.input(a);


            Console.ReadLine();
        }

现在,这将使您克服第一轮编译错误,但这仍然没有意义。关于您的输入/输出。

我建议您阅读Console.ReadLine()

于 2012-07-12T20:23:50.173 回答