C#常见题型及部分答案

1、请写出c#的一个Main函数
2、String str="abcd";
     String str2 = str.substring(1,3);
的结果是什么?
3、errorprovier的作用是什么?
4、button 有什么常见的事件?
5、窗体 form 有什么常用的属性?
6、请写出至少3个c#的异常?exception
7、请写出至少5个c#连接SQLserver的操作对象?
比如Sqlconnction,SqlCommand等
并且逐一写出它们的作用
8、想删除一个文件 使用一个打开文件的对话框,然后进行文件的删除 请写出大概的步骤和所用的对象
9、请写出FileStream的作用,StreamWriter和StreamReader的作用
10、写出只能填写数字的控件,只能添些日期的控件,显示进度条的控件,时间管理的控件 写出这些控件的名字
11、datagridview的作用 和操作方法
12、DataTable的作用 ,如果想取出第1行第2列的内容应该如何操作
13、如何按下键盘的w 让一个图片向上移动
14、写出报表文件的后缀名
15、写出连接SQL数据库构造函数中的写法
16、写出reader.Read()方法的作用和返回值
17、out和ref的作用 及区别
18、switch case 的写法
19、foreach的作用和写法
20、HashTable 的作用和写法

======================================

C#常见题型部分答案

一 、c#的入口函数Main()
存在与某个类中
每个项目只能有一个
可以没有public
必须有static
必须有返回类型
必须第一个字母大写

二、Form常用属性
(1)Name属性:用来获取或设置窗体的名称。
(2)WindowState属性:用来获取或设置窗体的窗口状态。
(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。
(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width属性:用来获取或设置窗体的宽度。
(6)Heigth属性:用来获取或设置窗体的高度。
(7)Left属性:用来获取或设置窗体的左边缘的 x 坐标(以像素为单位)。
(8)Top属性:用来获取或设置窗体的上边缘的 y 坐标(以像素为单位)。
(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
(10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。
(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。
(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按 ENTER 键时就相当于单击了窗体上的该按钮。
(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。
(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。
(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。
(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。
(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。
(18)BackColor属性:用来获取或设置窗体的背景色。
(19)BackgroundImage属性:用来获取或设置窗体的背景图像。
(20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。
(21)Font属性:用来获取或设置控件显示的文本的字体。
(22)ForeColor属性:用来获取或设置控件的前景色。
(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面 (MDI) 子窗体。
(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 中的子窗体的容器。
(25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。
(26)MdiChildren属性:数组属性。
(27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面 (MDI) 父窗体。
(28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在 Windows 任务栏中显示窗体。
(29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。
(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。

(1)Show方法
该方法的作用是让窗体显示出来,其调用格式为:
窗体名.Show();
(2)Hide方法
该方法的作用是把窗体隐藏出来,其调用格式为:
窗体名.Hide();
(3)Refresh方法
该方法的作用是刷新并重画窗体,其调用格式为:
窗体名.Refresh();
(4)Activate方法
该方法的作用是激活窗体并给予它焦点。其调用格式为:
窗体名.Activate();
(5)Close方法
该方法的作用是关闭窗体。其调用格式为:
窗体名.Close();
(6)ShowDialog方法
该方法的作用是将窗体显示为模式对话框。其调用格式为:
窗体名.ShowDialog();


三、C#所有异常类的名称以及作用?
类 说明
Microsoft.Build.BuildEngine.InternalLoggerException 此异常用于包装来自记录器的未处理异常。
Microsoft.Build.BuildEngine.InvalidProjectFileException 当用户的 XML 项目文件出现问题时,会引发此异常。该问题可能是语义问题也可能是语法问题。如果该问题是语法问题,则通常是由 XSD 验证导致的。
Microsoft.Build.Framework.LoggerException 使记录器可以通过显式方式强制生成停止。
Microsoft.JScript.CmdLineException
Microsoft.JScript.ParserException
Microsoft.VisualBasic.ApplicationServices.CantStartSingleInstanceException 当单实例应用程序的后续实例无法连接到第一个应用程序实例时,将引发此异常。
Microsoft.VisualBasic.ApplicationServices.NoStartupFormException 当未设置 MainForm 属性时,Visual Basic 应用程序模型会引发此异常。
Microsoft.VisualBasic.CompilerServices.IncompleteInitialization
Microsoft.VisualBasic.CompilerServices.InternalErrorException
Microsoft.VisualBasic.FileIO.MalformedLineException 当 ReadFields 方法不能使用指定格式分析行时引发的异常。
Microsoft.WindowsMobile.DirectX.DirectXException 由托管代码应用程序的 Windows Mobile DirectX 引发的异常。
System.ApplicationException 发生非致命应用程序错误时引发的异常。
System.ComponentModel.Design.ExceptionCollection 表示异常的集合。
System.Configuration.Provider.ProviderException 当发生配置提供程序错误时引发的异常。如果提供程序内发生的内部错误没有映射到其他已存在的异常类,则提供程序也使用此异常类来引发异常。
System.Configuration.SettingsPropertyIsReadOnlyException 提供只读 SettingsProperty 对象的异常。
System.Configuration.SettingsPropertyNotFoundException 提供未找到的 SettingsProperty 对象的异常。
System.Configuration.SettingsPropertyWrongTypeException 提供在对 SettingsProperty 对象使用无效类型时引发的异常。
System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectExistsException 当创建了 Active Directory 对象且该对象在基础目录存储区中已存在时,将引发 ActiveDirectoryObjectExistsException 类异常。
System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException 当在基础目录存储区中找不到请求的对象时,将引发 ActiveDirectoryObjectNotFoundException 类异常。
System.DirectoryServices.ActiveDirectory.ActiveDirectoryOperationException 当基础目录操作失败时,将引发 ActiveDirectoryOperationException 类异常。
System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException 当服务器无法响应服务请求时,将引发 ActiveDirectoryServerDownException 类异常。
System.DirectoryServices.Protocols.DirectoryException DirectoryException 类是一个抽象类,用作所有 System.DirectoryServices.Protocols 异常的基类。
System.IO.IsolatedStorage.IsolatedStorageException 独立存储中的操作失败时所引发的异常。
System.Net.Mail.SmtpException 表示当 SmtpClient 无法完成 Send 或 SendAsync 操作时引发的异常。
System.Runtime.CompilerServices.RuntimeWrappedException 包装不是从 Exception 类派生的异常。无法继承此类。
System.Runtime.Remoting.MetadataServices.SUDSGeneratorException 在生成 Web 服务描述语言 (WSDL) 的过程中发生错误时将引发的异常。
System.Runtime.Remoting.MetadataServices.SUDSParserException 在分析 Web 服务描述语言 (WSDL) 的过程中发生错误时将引发的异常。
System.SystemException 为 System 命名空间中的预定义异常定义基类。
System.Web.Security.MembershipCreateUserException 在成员资格提供程序未成功创建用户时引发的异常。
System.Web.Security.MembershipPasswordException 无法从密码存储区检索到密码时引发的异常。
System.Web.UI.ViewStateException 表示当无法加载或验证视图状态时引发的异常。无法继承此类。
System.Windows.Forms.AxHost.InvalidActiveXStateException 引用处于无效状态的 ActiveX 控件时引发的异常。

 

16、写出reader.Read()方法的作用和返回值
从sqlserver数据库的第一条开始查,直到最后一条记录。
false true

17、out和ref的作用 及区别

C#中的out与ref
MSDN上的简单介绍:

  out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如:class OutExample
{
     static void Method(out int i)
     {
         i = 44;
     }
     static void Main()
     {
         int value;
         Method(out value);
         // value is now 44
     }


尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。

ref 和 out 关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。但是,如果一个方法采用 ref 或 out 参数,而另一个方法不采用这两类参数,则可以进行重载。

示例:

        当希望方法返回多个值时,声明 out 方法很有用。使用 out 参数的方法仍然可以将变量用作返回类型(请参见 return),但它还可以将一个或多个对象作为 out 参数返回给调用方法。此示例使用 out 在一个方法调用中返回三个变量。请注意,第三个参数所赋的值为 Null。这样便允许方法有选择地返回值。

class OutReturnExample
{
     static void Method(out int i, out string s1, out string s2)
     {
         i = 44;
         s1 = "I''ve been returned";
         s2 = null;
     }

20、HashTable 的作用和写法
Hashtable表操作

发布人:admin 发布日期: 2007-12-17 阅读: 129 

using   System;
using   System.Collections;

namespace   HashtableTest
{
        class   Program
        {
                static   void   Main(string[]   args)
                {
                        //   哈希表默认容量是   7,内部数组初始大小为   11
                        //   每次扩容性能损失相当大,所以最好直接给定   capacity   值
                        Hashtable   htt   =   new   Hashtable(100);

                        for   (int   i   =   0;   i   <   100;   i++)
                                htt.Add(i,   i);
                        Console.WriteLine(htt.Count);

                        //   使用一个副本,退出   foreach   就回收了,不会造成大的性能影响
                        foreach   (int   key   in   ((Hashtable)htt.Clone()).Keys)
                                if   (key   %   2   ==   0)
                                        htt.Remove(key);
                        Console.WriteLine(htt.Count);
                }
        }
}
 

hashtable的用法
 
 
 
1.
Hashtable mhashtable = new Hashtable();
 2.

 public Hashtable getMhashtable() {
  return mhashtable;
 }
3.
uHashtable.put(username, usernamue);
 
4.
LdapParse createM = new LdapParse();
Hashtable hashKey = (Hashtable)createM.getUHashtable();
 Enumeration enum;
 String name, value;
 enum = hashKey.keys();
 while (enum.hasMoreElements())
 {
  name = (String) enum.nextElement();
  value = (String) hashKey.get(name);
 }
 
Hashtable
一,哈希表(Hashtable)简述

  在.NET work中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/的键值对,其中key通常可用来快速查找,同时key是区分大小写;用于存储对应于key的值。Hashtable中key/键值对均为object类型,所以Hashtable可以支持任何类型的key/键值对.

二,哈希表的简单操作

 在哈希表中添加一个key/键值对:HashtableObject.Add(key,);
 在哈希表中去除某个key/键值对:HashtableObject.Remove(key);
 从哈希表中移除所有元素:           HashtableObject.Clear();
 判断哈希表是否包含特定键key:      HashtableObject.Contains(key);
 下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
  public static void Main()
  {
  Hashtable ht=new Hashtable(); //创建一个Hashtable实例
  ht.Add("E","e");//添加key/键值对
  ht.Add("A","a");
  ht.Add("C","c");
  ht.Add("B","b");

  string s=(string)ht["A"];
  if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
    Console.WriteLine("the E key:exist");
  ht.Remove("C");//移除一个key/键值对
  Console.WriteLine(ht["A"]);//此处输出a
  ht.Clear();//移除所有元素
  Console.WriteLine(ht["A"]); //此处将不会有任何输出
  }
}

 

三,遍历哈希表

 遍历哈希表需要用到DictionaryEntry Object,代码如下:
 for(DictionaryEntry de in ht) //ht为一个Hashtable实例
 {
   Console.WriteLine(de.Key);//de.Key对应于key/键值对key
   Console.WriteLine(de.);//de.Key对应于key/键值对
 }

四,对哈希表进行排序

  对哈希表进行排序在这里的定义是对key/键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
 ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
 akeys.Sort(); //按字母顺序进行排序
 for(string skey in akeys)
 {
   Console.Write(skey ":");
   Console.WriteLine(ht[skey]);//排序后输出
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值