本人之前从事Java工作, 因工作需要转为使用C#, 今天刚开始学习C#, 遇到一个很简单的问题但是想不明白.
以下我分别写了Java与C#两段代码, 请大家站在Java的角度帮我解释一下C#的代码是什么意思Java代码:    class Program {
        public static void main(String[] args) {
            Test1 myTest = new Test1();
            myTest.setAge(18) = 18;
            System.out.println(myTest.getAge());
        }
    }
    class Test1 {
        private int age;
        public void setAge(int age) {
            age = this.age;
        }
        public int getAge() {
            return age;
        }
    }C#代码:using System; // 这是什么意思?
using System.Collections.Generic; // 这是什么意思?
using System.Text; // 这是什么意思?namespace ConsoleApplication4 //命名空间有什么用?
{
    class Program
    {
        static void Main(string[] args)
        {
            Test1 myTest = new Test1();
            myTest.Age = 18;
            Console.WriteLine(myTest.Age);
            Console.Read();
        }
    }
    class Test1
    {
        private int age;        // 这是 set, get 函数吗?怎么这样写?
        public int Age
        {
            get { return age; } //搞不懂?
            set { age = value; } //搞不懂?
        }
    }
}
请大家用Java的思想帮我翻译上面的这段C#代码, 谢谢!

解决方案 »

  1.   


    using System; // 这是什么意思?****引用名字空间,在java中应该叫导入包(如io包等)
    using System.Collections.Generic; // 这是什么意思?****引用泛型名字空间,
    using System.Text; // 这是什么意思?namespace ConsoleApplication4 //命名空间有什么用?////是你自定义的名字空间,利于源码维护与隔离,解决命名冲突等
    {
        class Program
        {
            static void Main(string[] args)
            {
                Test1 myTest = new Test1();
                myTest.Age = 18;
                Console.WriteLine(myTest.Age);
                Console.Read();
            }
        }
        class Test1
        {
            private int age;        // 这是 set, get 函数吗?怎么这样写?
            public int Age
            {
                get { return age; } //搞不懂?//读这个字段
                set { age = value; } //搞不懂?//向这个字段写数据
                 //其实就是两个函数
            }
        }
    }
      

  2.   

    namespace ConsoleApplication4就当是package ConsoleApplication4;
    在其他类就可以using ConsoleApplication4;,相当于import ConsoleApplication4;
    下面的是set,get函数,可以自动生成的。
      选择"private int age;"这块代码,右键菜单-快捷键R-快捷键F就可以封装了(我的不是中文版,不知道怎么翻。。)
      

  3.   


    .net属性的底层也是封装成了getAge和setAge的