请问一下红线处的那处错误咋改啊?

img

img

img

img

想不出来返回值咋写,return只能接一个值。

sjakfogltpslgkejriryqotoxbcm

函数名有波浪线,多半是返回值没有写对。具体要看你文本格式的代码
你这图片太模糊

class A
{
    private static void Main()
    {
        char cz = char.Parse(Console.ReadLine());

        if (cz == 'a')
        {
            cz = (char)1;
        }
        if (cz == 'd')
        {
            cz = (char)2;
        }
        if (cz == 'w')
        {
            cz = (char)3;
        }
        if (cz == 's')
        {
            cz = (char)4;
        }
        int[,] sz = new int[4, 4]
        {
        {0,4,0,0 },
        {2,8,2,2 },
        {16,8,4,2 },
        {32,16,8,4 },
        };
        int[] x1 = new int[4] { 0, 4, 0, 0 };
        int[] x2 = new int[4] { 2, 8, 2, 2 };
        int[] x3 = new int[4] { 16, 8, 4, 2 };
        int[] x4 = new int[4] { 32, 16, 8, 4 };
        int[] x5a = new int[4] { 0, 0, 4, 0 };
        int[] x6a = new int[4] { 2, 2, 8, 2 };
        int[] x7a = new int[4] { 2, 4, 8, 16 };
        int[] x8a = new int[4] { 4, 8, 16, 32 };

        int[,] sz1 = new int[4, 4]
        {
           { x1[0],x1[1],x1[2],x1[3] },
           { x2[0],x2[1],x2[2],x2[3] },
           { x3[0],x3[1],x3[2],x3[3] },
           { x4[0],x4[1],x4[2],x4[3] },
        };
        Hs1( x1, x2, x3, x4, cz);
        Console.WriteLine(sz1);
    }
    private static int[] Hs1( int[] x1, int[] x2, int[] x3, int[] x4, int cz)
    {
        if (cz == 1)
        {
            for (int i = 0; i < 3; i++)
            {
                if (x1[i] == x1[i + 1])
                {
                    x1[i] += x1[i + 1];
                    x1[i + 1] = 0;
                    if (x1[i] == 0 || x1[i + 1] == 0)
                    {
                        int t = x1[3];
                        x1[3] = x1[i];
                        x1[i] = t;
                        for (int j = i; j < 3 - 1; j++)
                        {
                            x1[j] = x1[j + 1];
                            x1[3] = t;
                        }
                    }
                    return x1;
                }


                if (x2[i] == x2[i + 1])
                {
                    x2[i] += x2[i + 1];
                    x2[i + 1] = 0;
                    if (x2[i] == 0 || x2[i + 1] == 0)
                    {
                        int t = x2[3];
                        x2[3] = x2[i];
                        x2[i] = t;
                        for (int j = i; j < 3 - 1; j++)
                        {
                            x2[j] = x2[j + 1];
                            x2[3] = t;
                        }
                    }
                    return x2;
                }


                if (x3[i] == x3[i + 1])
                {
                    x3[i] += x3[i + 1];
                    x3[i + 1] = 0;
                    if (x3[i] == 0 || x3[i + 1] == 0)
                    {
                        int t = x3[3];
                        x3[3] = x3[i];
                        x3[i] = t;
                        for (int j = i; j < 3 - 1; j++)
                        {
                            x3[j] = x3[j + 1];
                            x3[3] = t;
                        }
                    }
                    return x3;
                }


                if (x4[i] == x4[i + 1])
                {
                    x4[i] += x4[i + 1];
                    x4[i + 1] = 0;
                    if (x4[i] == 0 || x4[i + 1] == 0)
                    {
                        int t = x4[3];
                        x4[3] = x4[i];
                        x4[i] = t;
                        for (int j = i; j < 3 - 1; j++)
                        {
                            x4[j] = x4[j + 1];
                            x4[3] = t;
                        }
                    }
                    return x4;
                }
            }
            
        }
        
    }
}

你把return全写进if里了
但是c#要求必须在语法层面保证函数必须有返回,不能有时有返回有时没返回
你最后再加个return null