这是我的代码:
目的是添加两个大数字,首先在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();
}
}
}
我收到此错误“非静态字段需要对象参考......”,
答案 0 :(得分:2)
matrix.input(a);
宣布matrix
的地方(不是)。
int[] a = new matrix();
此外,您无法将matrix
的实例分配给int[]
。没有从一个到另一个的隐式转换。虽然我不能说这是一个很棒的设计,但你想要的是这样的:
matrix a = new matrix();
a.c = new int[SomeSize];
// more code
a.input(b); // or something similar...
答案 1 :(得分:0)
您需要在Main方法中创建一个新的类矩阵实例,如下所示: matrix instance = new matrix(); 然后你可以调用矩阵类的方法。阅读静态和实例方法/属性/字段之间的差异。
答案 2 :(得分: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()