c# 面试题及部分答案

本文汇总了C#编程语言在面试中常见的问题,涵盖基础语法、数据类型、集合操作、.NET框架以及ASP.NET应用等方面的知识,旨在帮助求职者准备面试。

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

 

问答题沿用
 
S1 C#:
 
Ch1:
 
1、= = 与Equals方法的区别?
 
对于值类型:由于值类型是存储在栈中,两者都是比较的是两个变量的在栈中的值是否相等。
 
对于引用类型:引用类型是在堆一个存储引用,指向堆中的某个具体值。= =判断引用地址,equals判断值
 
       2、Java中的switch于C#中的switch的区别
 
       Java中的switch:只能判断int, short及比int所占字节还少的类型
 
         C#中的switch:可以判断string及比string所占字节少的类型
 
Ch2:
 
1、 冒泡排序(c#)口诀
 
           int[] numbers ={ 49, 12, 65, 45, 88, 54 };
 
            //排序前
 
            Console.WriteLine("排序前:");
 
            foreach (int i in numbers)
 
            {
 
                Console.Write(i + " ");
 
            }
 
            //冒泡排序
 
            for (int i = 0; i < numbers.Length; i++ )
 
            {
 
                for (int j = 0; j < numbers.Length - 1 - i; j++ )
 
                {//将最大数交换到最后
 
                    if(numbers[j] > numbers[j+1])
 
                    {
 
                        int temp = numbers[j];
 
                        numbers[j] = numbers[j + 1];
 
                        numbers[j + 1] = temp;
 
                    }
 
                }
 
            }
 
            //排序后
 
            Console.WriteLine("/n排序后:");
 
            foreach (int i in numbers)
 
            {
 
                Console.Write(i + " ");
 
            }
 
2、 分别写出四种循环语法
 
for(int i=0;i<length;i++){}      while(true){} foreach(int i in numbers){}   do{}while(true);
 
3、 编程求数组中的最大数,打印所有的水仙花数,打印九九乘法表
 
求最大数:int[] numbers ={ 49, 12, 65, 45, 88, 54 };
 
            int max = 0;
 
            for (int i = 0; i < numbers.Length-1; i++ )
 
            {
 
                if(numbers[i] > numbers[i+1])
 
                {
 
                    max = numbers[i];
 
                }
 
            }
 
            Console.WriteLine("最大数为:"+max);
 
                  水仙花数:for (int i = 100; i < 1000; i++ )
 
            {
 
                int a = i % 10;        //个位数
 
                int b = i % 100;   //十位数
 
                b = b / 10;
 
                int c = i / 100; //百位数
 
                int number = (int)Math.Pow(a, 3) + (int)Math.Pow(b, 3) + (int)Math.Pow(c, 3);
 
                if(number == i)
 
                {
 
                    Console.Write(i + "   ");
 
                }
 
            }
 
                  打印九九乘法表:for (int i = 1; i <= 9; i++ )
 
            {
 
                for (int j= 1; j <= i; j++)
 
                {
 
                    Console.Write("{0}×{1}={2}/t", j, i, i * j);
 
                }
 
                Console.WriteLine();
 
            }
 
Ch3:
 
1、 命名空间的含义:包,便于管理
 
2、 引用传递和值传递的区别:主要是相对于值类型,用引用传递加ref,就可实现其值真正的改变。值传递,当调用方法结束后,则不会改变值。
 
3、 请写出String的常用方法(10个),并描述功能
 
Equals():判断值相等           Split():以…分割每个字符为string[]数组              IndexOf():返回指定字符的索引
 
Concat():连接,相当于’+’号        Trim():忽略前后空格         ToUpper():转换为大写       ToLower():转换为小写
 
StartsWith():开头字符是否匹配 SubString():截取字符串     ToCharArray():转换为char[]数组
 
4、 分别写出数据类型转换(至少四种)的方法,代码举例
 
显示转换:int i=(int)12.9;
 
隐式转换:double d=12;
 
int/double/float.parse ()转换:string s=”13”;               int i=int.parse(s);
 
convert:int x = 13;        double d = Convert.ToDouble(x);
 
Ch4:
 
1、 Partial关键字的含义
 
Partial局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。
 
适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(3) 需要多人合作编写一个类
 
http://blog.youkuaiyun.com/dotnet90/archive/2006/12/23/1455796.aspx
 
2、 Windows窗体的生命周期常用事件有哪些?
 
Initialize, Load, Activated(窗体被激活时), Deactivate(窗体被停用时), FormClosed, FormClosing
 
3、 写出常用的控件键盘事件和鼠标事件
 
键盘事件:KeyDown, KeyUp, KeyPress
 
鼠标事件:Click,DoubleClick,MouseClick,MouseDown,MouseEnter,MouseHover,MouseLeave,MouseMove,MouseUp
 
4、 请写出MessageBox常用的四种类型,以及返回值类型
 
MessageBox.Show(“消息内容”);    返回类型:DialogResult
 
MessageBox.Show(“消息内容”,”标题”);     返回类型:DialogResult
 
MessageBox.Show(“消息内容”,”标题”);     返回类型:DialogResult
 
MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型);     返回类型:DialogResult
 
MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型, MessageBoxIcon图标类型
 
);    返回类型:DialogResult
 
Ch5:
 
1、 anchor和dock的区别
 
anchor(锚定):距离容器边缘的距离,当控件锚定到某个边缘时,与指定边缘最接近的控件边缘与指定边缘之间的距离将保持不变。
 
dock(停靠):将控件停靠在窗体或容器的边缘,距离为0px
 
2、 如何创建一个MDI窗体(步骤),即多文档窗体
 
1)设置子窗体:子窗体名称 form = new Form(); form.MdiParent=this(父窗体); form.show();
 
2)设置父窗体属性:isMdiContainer=true;
 
3、 模式窗体和非模式窗体的区别
 
模式窗体:form.ShowDialog();有返回值:DialogResult;程序会中断,主窗体不能激活,必须关闭模式窗体才能激活主窗体, 只能show出一个
 
非模式窗体:form.Show (); 无返回值,程序不会中断;可以show出多个
 
4、 使用第三方类传递窗体间的数据(代码演示)
 
public class UserHelpper
 
        {
 
        public static string loginId = "";     //用户名
 
         public static string loginType = "";   //登录类型
 
}
 
Ch6:
 
1、 ADO.Net重要组件(那幅图6.2)
 
.NetF
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值