C# 我能';我不能修改我的代码。CS0120错误 class-mat{ int i,j,m,n; int[,]a=新的int[20,20]; 公共静态整型左(整型m,整型n) { int d=0,i,j; 如果(m==n) { 对于(i=1;i
在你的函数中,左(m,n)C# 我能';我不能修改我的代码。CS0120错误 class-mat{ int i,j,m,n; int[,]a=新的int[20,20]; 公共静态整型左(整型m,整型n) { int d=0,i,j; 如果(m==n) { 对于(i=1;i,c#,C#,在你的函数中,左(m,n) 如果m!=n,则没有返回语句。我认为问题在于您在此行中遇到了CS0120错误(非静态字段、方法或属性“成员”需要对象引用): class mat int i, j, m, n; int[,] a = new int[20, 20]; public void get() { Console.WriteLine("Enter Row Value"); m = int.Parse(Console.ReadLine()); Console.WriteL
如果m!=n,则没有返回语句。我认为问题在于您在此行中遇到了CS0120错误(非静态字段、方法或属性“成员”需要对象引用):
class mat
int i, j, m, n;
int[,] a = new int[20, 20];
public void get()
{
Console.WriteLine("Enter Row Value");
m = int.Parse(Console.ReadLine());
Console.WriteLine("Enter Column Value");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Enter Elements one by one");
for (i = 1; i <= m; i++)
{
for (j = 1; j <= n; j++)
{
a[i, j] = int.Parse(Console.ReadLine());
}
}
Console.WriteLine("Given Matrix");
for (i = 1; i <= m; i++)
{
for (j = 1; j <= n; j++)
{
Console.Write("\t{0}", a[i, j]);
}
Console.WriteLine();
}
}
public void diagleft()
{
int d = 0;
if (m == n)
{
for (i = 1; i <= m; i++)
{
for (j = 1; j <= n; j++)
{
if (i == j)
{
int value_1 = Math.Abs(a[i, j]);
d = d + value_1;
}
}
}
Console.WriteLine("Diagonal Sum from left side= {0}", d);
}
else
{
Console.WriteLine("Can't Perform Diagonal Sum from left side");
}
}
public void diagright()
{
int z = 0;
if(m==n)
{
for (i = 1; i <= m; i++)
{
for(j=n; j >= 1; j--)
{
if(i+j==(m+1))
{
int value_2 = Math.Abs(a[i, j]);
z = z + value_2;
}
}
}
Console.WriteLine("Diagonal Sum from right side= {0}", z);
}
else
{
Console.WriteLine("Can't perform diagonal sum from right side");
}
}
class matsum
{
static void Main(string[] args)
{
mat ma = new mat();
ma.get();
ma.diagleft();
ma.diagright();
Console.Read();
}
}
这是因为“int[,]a”声明需要是静态的,如下所示:
int value_1 = Math.Abs(a[i, j]);
由于Diagleft方法是静态的,它只能访问类的静态成员。它将无法访问实例变量
顺便说一句,您的Diagleft方法也不会在所有代码路径上返回值。此外,如果本地方法变量和类的私有成员变量使用相同的名称,即i和j变量,则会造成混淆。请提供错误消息的全文,并告诉我们从何处获得它。请不要让我们查找错误消息CS01(0?)20错误消息是。我们没有将它们全部记住。代码如何正常工作,但您声明它会抛出错误。我建议首先使用调试器。此外,如果您被卡住并且不理解您的家庭作业,请与您的教授预约“因此,我的代码被忽略。我正在尝试按需要生成此代码。但我无法实现。以下是被忽略的第一个代码。尽管它工作正常:“--您能澄清一下这些备注吗?谁忽略了代码?您需要仔细阅读
void
的含义,以及return
在代码块内的含义与调用方法时返回类型的含义。”。。
int value_1 = Math.Abs(a[i, j]);
static int[,] a = new int[20, 20];