.net 笔试题

答案是我自己写的,不知道对不对
1、请写出输出结果(知识点:virtual override)
在这里插入图片描述
2
答案:
x=5,y=0
x=6,y=-1
在这里插入图片描述
执行过程:
B b=new B();
先调用A的构造函数,
再调用A构造函数中虚方法PrintFields(),
调用重写方法PrintFields();
x=5,y=0;
再调用B的构造函数,此时y=-1;
b.PrintFields();
5+=1;
x=6,y=-1;

3、考察 引用类型 值类型 及字符串
答案:10 21 0 str sting being converted

        public  class A
        {
    
    
            private string str = "Class1.str";
            private int i = 0;
            public static void StringConvert(string str)
            {
    
    
                str = "string being converted";
            }
            public static void StringConvert(A c)
            {
    
    
                c.str = "string being converted";
            }
            static void Add(int i)
            {
    
    
                i++;
            }
            static void AddWithRef(ref int i)
            {
    
    
                i++;
            }
            static void Main(string[] args)
            {
    
    
                int i1 = 10;
                int i2 = 20;
                string str = "str";
                A c = new A();
                Add(i1);
                AddWithRef(ref i2);
                Add(c.i);
                //由于string类型的不变性,函数内部会创建一块新的内存来存放形参str,不会改变实参str,外部打印的是实参str,所以答案为“str”
                StringConvert(str);
                StringConvert(c);
                Console.WriteLine(i1);
                Console.WriteLine(i2);
                Console.WriteLine(c.i);
                Console.WriteLine(str);
                Console.WriteLine(c.str);
                Console.ReadLine();
            }
        }

猜你喜欢

转载自blog.csdn.net/hhhhhhenrik/article/details/96167238