第1题你正在开发一个自定义事件处理去自动打印所有打开的文档。事件处理可以指定要打印的份数。为此,你需要开发一个传递给事件处理程序的自定义事件参数类,你应该使用下面那个代码段?A.publicclassPrintingArgs{privateintcopies;publicPrintingArgs(intnumberOfCopies){this.copies=numberOfCopies;}publicintCopies{get{returnthis.copies;}}}B.publicclassPrintingArgs:EventArgs{privateintcopies;publicPrintingArgs(intnumberOfCopies){this.copies=numberOfCopies;}publicintCopies{get{returnthis.copies;}}}C.publicclassPrintingArgs{privateEventArgseventArgs;publicPrintingArgs(EventArgsea){this.eventArgs=ea;}publicEventArgsArgs{get{returneventArgs;}}}D.publicclassPrintingArgs:EventArgs{privateintcopies;}答案:B第2题你使用反射(Reflection)来获得方法MyMethod的信息。你需要获取MyMethod方法是否在派生类中可以访问,你应该如何做?A.访问MethodInfo的IsAssembly属性。B.访问MethodInfo的IsVirtual属性。C.访问MethodInfo的IsStatic属性。D.访问MethodInfo的IsFamily属性。答案:D第3题你正在创建一个使用非托管资源的类。这个类引用了使用托管资源的对象。你需要确保使用这个类的用户在不需要类实例的时候能够够释放资源。你应该做那三个工作?(每个答案是解决方案的一部分)A.定义一个从WeakReference继承的类。B.定义一个实现IDisposable接口的类。C.创建一个类析构函数,调用其它对象的方法去释放托管资源。D.创建一个类析构函数,释放非托管资源E.创建一个Dispose方法,调用System.GC.Collect强制垃圾回收。F.创建一个Dispose方法,释放非托管资源并且调用其它对象的方法释放托管资源。答案:B,D,F第4题你正对一个应用进行调试。你需要找到引起异常的代码行。请问,Exception类的哪个属性能达到这个目的?A.DataB.MessageC.StackTraceD.Source答案:C第5题你正在测试一个新开发的方法PersistToDB。这个方法接收一个类型为EventLogEntry的参数,方法没有返回值。你需要创建一段代码来帮助你测试这个方法。这段代码必须从本地计算机的应用日志读取日志项然后传递日志项给PersistToDB方法。要求,传递到PersistToDB方法的日志项必须是MySource源而且类型为错误或警告的日志。你应该使用下面那个代码段?A.EventLogmyLog=newEventLog(Application,.);foreach(EventLogEntryentryinmyLog.Entries){if(entry.Source==MySource){PersistToDB(entry);}}B.EventLogmyLog=newEventLog(Application,.);myLog.Source=MySource;foreach(EventLogEntryentryinmyLog.Entries){if(entry.EntryType==(EventLogEntryType.Error&EventLogEntryType.Warning)){PersistToDB(entry);}}C.EventLogmyLog=newEventLog(Application,.);foreach(EventLogEntryentryinmyLog.Entries){if(entry.Source==MySource){if(entry.EntryType==EventLogEntryType.Error||entry.EntryType==EventLogEntryType.Warning){PersistToDB(entry);}}}D.EventLogmyLog=newEventLog(Application,.);myLog.Source=MySource;foreach(EventLogEntryentryinmyLog.Entries){if(entry.EntryType==EventLogEntryType.Error||entry.EntryType==EventLogEntryType.Warning){PersistToDB(entry);}答案:C第6题你的应用使用两个名为threadOne和threadTwo的线程。你需要修改代码使其只有threadTwo执行完成才开始执行threadOne。你应该如何做?A.设置threadOne运行在低优先级。B.设置threadTwo运行在高优先级。C.使用WaitCallback代理去同步线程。D.调用threadOne的Sleep方法。答案:C第7题你是公司A的一个开发人员。你创建了一个名为Company1的程序集。Company1包含了一个public方法。全局程序集中包含了另一个名为Company2的程序集。你必须保证,public方法只能够被Company2调用。你需要使用下面哪个权限类?A.GacIdentityPermissionB.PublisherIdentityPermissionC.DataProtectionPermissionD.StrongNameIdentityPermission答案:D第8题你创建了一个发送e-mail的应用。一个名称为smtp.Company.com的SMTP服务器在本地子网是可用的。为了测试应用,你使用源地址为me@Company.com,目标地址为you@Company.com。你应该使用下面那个代码段去发送e-mail?A.MailAddressaddrFrom=newMailAddress(me@Company.com,Me);MailAddressaddrTo=newMailAddress(you@Company.com,You);MailMessagemessage=newMailMessage(addrFrom,addrTo);message.Subject=Greetings!;message.Body=Test;message.Dispose();B.stringstrSmtpClient=mstp.Company.com;stringstrFrom=me@Company.com;StringstrTo=you@Company.com;stringstrSubject=Greetings!;stringstrBody=Test;MailMessagemsg=newMailMessage(strFrom,strTo,strSubject,strSmtpClient);C.MailAddressaddrFrom=newMailAddress(me@Company.com);MailAddressaddrTo=newMailAddress(you@Company.com);MailMessagemessage=newMailMessage(addrFrom,addrTo);message.Subject=Greetings!;message.Body=Test;SmtpClientclient=newSmtpClient(smtp.Company.com);client.Send(message);D.MailAddressaddrFrom=newMailAddress(me@Company.com,Me);MailAddressaddrTo=newMailAddress(you@Company.com,You);MailMessagemessage=newMailMessage(addrFrom,addrTo);message.Subject=Greetings!;message.Body=Test;SocketInformationinfo=newSocketInformation();Socketclient=newSocket(info);System.Text.ASCIIEncodingenc=newSystem.Text.ASCIIEncoding();byte[]msgBytes=enc.GetBytes(message.ToString());client.Send(msgBytes);答案:C第9题你正在开发一个自定义集合类。你需要在你的类里创建一个方法而且能够保证你的方法的返回值是一个能够适合Foreach语句使用的类型。你应该如何实现你的方法?A.方法必须返回一个IEnumerator或Ienumerable的类型。B.方法必须返回一个IComparable的类型。C.方法必须包含一个集合。答案:A第10题你正在开发一个执行数学计算的应用。你创建了一个类CalculationValues,并且写了一个操作CalculationValues的过程PerformCalculation。你需要保证当计算被执行的时候,用户界面能够继续响应。为此,你需要写一个代码段去调用PerformCalculation过程去达到目的,你应该使用下面那个代码段?A.privatevoidPerformCalculation(){...}privatevoidDoWork(){CalculationValuesmyValues=newCalculationValues();ThreadnewThread=newThread(newThreadStart(PerformCalculation));newThread.Start(myValues);}B.privatevoidPerformCalculation(){...}privatevoidDoWork(){CalculationValuesmyValues=newCalculationValues();ThreadStartdelStart=newThreadStart(PerformCalculation);ThreadnewThread=newThread(delStart);if(newThread.IsAlive){newThread.Start(myValues);}}C.privatevoidPerformCalculation(CalculationValuesvalues){...}privatevoidDoWork(){CalculationValuesmyValues=newCalculationValues();Application.DoEvents();PerformCalculation(myValues);Application.DoEvents();}D.privatevoidPerformCalculation(objectvalues){...}privatevoidDoWork(){CalculationValuesmyValues=newCalculationValues();ThreadnewThread=newThread(newParameterizedThreadStart(PerformCalculation));newThread.Start(myValues);}答案:D