日期:2014-05-18  浏览次数:20827 次

C#面试题集锦(你值得拥有!)

C#面试题集锦(你值得拥有!)
2011年04月22日
  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[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 numbers[i+1])
  {
  max = numbers;
  }
  }
  Console.WriteLine("最大数为:"+max);
  水仙花数:for (int i = 100; i 代码举例
  显示转换: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.csdn.net/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)
  .NetFramework和DateSet
  2、  数据提供者程序有哪些
  3、  连接字符串的写法(两种)
  "Data Source=.\SQLEXPRESS;Initial Catalog=数据库名;Integrated security=true;"
  "server=.\sqlexpress; database=数据库名; uid=用户名; password=密码"
  4、  Connection对象的属性和方法:数据库连接对象
  属性:state 连接状态, DataBase 获取连接对象的数据库名称, DataSource连接对象的实例名
  方法:Open()/Close() 打开/关闭数据库, Dispose() 释放连接资源, ChangeDatabase() 为打开的当前连接对象更改数据库名。
  5、  异常处理各关键字的作用
  try:可能发生异常的代码块
  catch:捕获到何种异常,如何去处理, 可以跟多个catch块,但子类异常必须写在父类异常的前面
  finally:不管有没有异常都将执行的代码块
  6、  Command对象的属性和方法:SQL语句执行命令
  属性:CommandText获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。 Connection获取或设置 SqlCommand 的此实例使用的 SqlConnection
  方法:ExecuteNonQuery() 执行增,删,改语句,并返回受影响行数; ExecuteScalar() 执行查询,返回结果的第一行第一列,忽略其他列或行; ExecuteReader() 执行查询,返回DataReader对象