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]);//排序后输出
}