回 帖 发 新 帖 刷新版面

主题:一个简单的问题(关于对象的作用域)

using System;

namespace ConsoleApplication1
{
    class Text
    {
        public class A
        {
            public string str;
            public A()
            {
                str = null;
            }
        }

        public static void Input()
        {
            A[] a = new A[2];
            for (int i = 0; i < 2; i++)
            {
                a[i] = new A();
                a[i].str = Console.ReadLine();
            }
        }

        public static void Output()
        {
            A[] a = new A[2];
            for (int i = 0; i < 2; i++)
            {
                a[i] = new A();
                Console.WriteLine("{0}", a[i].str);
            }
        } 
        
        public static void Main()
        {
            Input();
            Output();
        }

    }
}

怎么样扩大"a[i].str"的作用域,使得Output函数不用再定义类a而能用Output函数来输出从Input函数输入的值

回复列表 (共2个回复)

沙发

首先有一点要注意:
当前代码中,Input函数中输入的值,在Output中并没有利用到。

如果用最少的更改来实现你说的功能,那么:

using System;

namespace ConsoleApplication1
{
    class Text
    {
        public class A
        {
            public string str;
            public A()
            {
                str = null;
            }
        }

        private static A[] a = new A[2];

        public static void Input()
        {
            for (int i = 0; i < 2; i++)
            {
                a[i] = new A();
                a[i].str = Console.ReadLine();
            }
        }

        public static void Output()
        {
            for (int i = 0; i < 2; i++)
            {
                 Console.WriteLine("{0}", a[i].str);
            }
        } 
        
        public static void Main()
        {
            Input();
            Output();
        }

    }
}

板凳

谢谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册