笔试题.NET基础代码面试题

题目如下,本随笔只是记录,都是一些自身面经的题目,您既然点开了的话,学习下无妨,说不定有帮助呢

以下答案都经过博主一个个去运行过。

 

题目1 (实例化后 x=?;y=? 输出什么):

public class Class1
{
    public Class1()
    {
        ShowInfo();
    }


    public virtual void ShowInfo() { }
}

public class Class2 : Class1
{
    int x = 1;
    int y;
    public Class2()
    {
        y = 2;
    }

    public override void ShowInfo()
    {
        Console.WriteLine($"x:{x},y:{y}");
    }
}
class Program
{
    static void Main(string[] args)
    {
        var class2 = new Class2();
        Console.ReadKey();
    }
}
会输出什么结果呢?  答案:x=1,y=0 
注:new Class2会第一出发Class1的构造函数,直接会调用ShowInfo,因为子类重写该方法,所以会打印 x=1,y=0,后者才会触发Class2构造函数内代码。

 

题目2 (X=?;Y=? 输出什么):

public static class Class1
{

    public static int Y = Class2.X + 1;
    static Class1()
    {
        
    }
}

public static class Class2
{
    public static int X = Class1.Y;
    static Class2()
    {
        X = Class1.Y + 2;
    }

}

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine($"X:{Class2.X};Y:{Class1.Y}");
        Console.ReadKey();
    }
}

答案:X:3;Y:1 ,此题目考的是静态类静态字段的使用

 

题目3 (输出啥?):

public class Class1
{
    public Class1()
    {
        
    }

    public virtual void ShowInfo(int value)
    {
        Console.WriteLine(value + 1);
    }
}

public class Class2:Class1
{
    public Class2()
    {

    }

    public override void ShowInfo(int value)
    {
        Console.WriteLine(value + 2);
    }
}

class Program
{
    static void Main(string[] args)
    {
        var obj = new Class2();
        Class1 obj1 = obj;
        obj1.ShowInfo(2);
        Console.ReadKey();
    }
}

答案:输出4

 

突然觉得自己记性还不错

! 还没吃饭呢,先把肚子安排了。。。

posted @ 2020-04-22 13:19  Homegu  阅读(415)  评论(0编辑  收藏  举报