C# 高级面试题

本文提供了一系列复杂的C#面试题目,包括循环控制、类型转换、错误处理和模式匹配等,旨在测试面试者的C#知识深度。虽然解题能力强并不完全等同于技术实力,但这些题目可以作为面试中的趣味挑战。作者鼓励读者尝试解答,并欢迎访问其个人博客和职业技术学院进行深入讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很少会有人可以答对,如果你遇到一个来面试的人实在嚣张,就可以用本文的题去打击
本文内容就看着玩,请不要在严肃的面试中问题这样的题目

如果面试到一个人可以回答出下面的题目也不能证明他的技术很强,只能说明他了解很多C#相关,或者他看过我的博客

循环下面的代码

请在下面的代码的注释处填写代码,让函数 Foo 里面的代码输出

        static void Main(string[] args)
        {
   
   
            // 请在此处写代码,调用 Foo 函数内的输出代码
        }

        private static void Foo()
        {
   
   
            try
            {
   
   
                while (true)
                {
   
   
                }
            }
            finally
            {
   
   
                Console.WriteLine("尝试调用 Foo 函数执行这一句代码");
            }
        }

参考答案

使用一个线程调用的方式,调用之后结束线程,此时就会输出

        static void Main(string[] args)
        {
   
   
            // 请在此处写代码,调用 Foo 函数内的输出代码

            var thread = new Thread(Foo);
            thread.Start();
            Task.Delay(100).Wait();
            thread.Abort();// 这时就会结束循环

            Console.Read();
        }

从空转换

请写出 IFoo 和 Foo 的实现,让下面的代码不会抛出空异常

        static void Main(string[] args)
        {
   
   
            Foo foo = (IFoo) null;
            foo.Name = "lindexi";

            Console.Read();
        }

参考答案

    c
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值