.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();
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值