C程序员面试必答.docx
《C程序员面试必答.docx》由会员分享,可在线阅读,更多相关《C程序员面试必答.docx(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C# 程程序员面面试必答答1.静态态变量和和非静态态变量的的区别? 答: 静态态变量: 静态态变量使使用 sstattic 修饰符符进行声声明 在在所属类类被装载载时创建建 通过过类进行行访问 所属类类的所有有实例的的同一静静态变量量都是同同一个值值 非静静态变量量: 不不带有 staaticc 修饰饰符声明明的变量量称做非非静态变变量 在在类被实实例化时时创建 通过对对象进行行访问 同一个个类的不不同实例例的同一一非静态态变量可可以是不不同的值值 示例例:usinng SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSyst
2、tem.Texxt;nameespaace Exaamplle011 claass Proograam cllasss Cllasss1 ppubllic staaticc Sttrinng sstatticSStr = &p;quuot;Claass&p;quuot; ppubllic Strringg nootsttatiicSttr = &aamp;quoot;OObj&p;quuot; sttatiic vvoidd Maain(strringg arggs) /静态态变量通通过类进进行访问问,该类类所有实实例的同同一静态态变量都都是同一一个值 CConssolee.
3、WrriteeLinne(&p;quuot;Claass11s staaticcStrr: 0&p;quuot;, CClasss1.staaticcStrr); CClasss1 tmppObjj1 = neew CClasss1(); ttmpOObj11.nootsttatiicSttr = &aamp;quoot;ttmpOObj11&ammp;qquott; CClasss1 tmppObjj2 = neew CClasss1(); ttmpOObj22.nootsttatiicSttr = &aamp;quoot;ttmpOObj22&ammp;qquott; /非静静
4、态变量量通过对对象进行行访问,不不同对象象的同一一非静态态变量可可以有不不同的值值 CConssolee.WrriteeLinne(&p;quuot;tmppObjj1ss nootsttatiicSttr: 0&ammp;qquott;, tmppObjj1.nnotsstatticSStr); CConssolee.WrriteeLinne(&p;quuot;tmppObjj2ss nootsttatiicSttr: 0&ammp;qquott;, tmppObjj2.nnotsstatticSStr); CConssolee.ReeadLLinee(); 复制代码码结果: C
5、laass11s staaticcStrr: CClasss ttmpOObj11s nottstaaticcStrr: ttmpOObj11 tmmpObbj2s nnotsstatticSStr: tmmpObbj2 2.cconsst 和和 sttatiic rreaddonlly 区区别? 答: connst 用 cconsst 修修饰符声声明的成成员叫常常量,是是在编译译期初始始化并嵌嵌入到客客户端程程序 sstattic reaadonnly 用 sstattic reaadonnly 修饰符符声明的的成员依依然是变变量,只只不过具具有和常常量类似似的使用用方法:通过类类进行访访问
6、、初初始化后后不可以以修改。但与常常量不同同的是这这种变量量是在运运行期初初始化 示例: 测试试类:usinng SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSysttem.Texxt;nameespaace Exaamplle022Libb pubblicc cllasss Cllasss1 puubliic cconsst SStriing strrConnst = &p;quuot;Connst&p;quuot; puubliic sstattic reaadonnly Strringg sttrStta
7、tiicReeadoonlyy = &ammp;qquott;SttatiicReeadoonlyy&ammp;qquott; /pubblicc coonstt Sttrinng sstrCConsst = &aamp;quoot;CConsst CChanngedd&ammp;qquott; /pubblicc sttatiic rreaddonlly SStriing strrStaaticcReaadonnly = &p;quuot;StaaticcReaadonnly Chaangeed&aamp;quoot; /5-11-a-s-pp-x复制代码码客户端代代码:usinng
8、SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSysttem.Texxt;usinng EExammplee02LLib;nameespaace Exaamplle022 claass Proograam sttatiic vvoidd Maain(strringg arggs) /修改改Exaamplle022中Cllasss1的sstrCConsst初始始值后,只只编译EExammplee02LLib项项目 /然后后到资源源管理器器里把新新编译的的Exaamplle022Libb.dlll拷贝贝Exaamplle022.
9、exxe所在在的目录录,执行行Exaamplle022.exxe /切不不可在IIDE里里直接调调试运行行因为这这会重新新编译整整个解决决方案! /可以以看到sstrCConsst的输输出没有有改变,而而strrStaaticcReaadonnly的的输出已已经改变变 /表明明Connst变变量是在在编译期期初始化化并嵌入入到客户户端程序序,而SStatticRReaddonlly是在在运行时时初始化化的 CConssolee.WrriteeLinne(&p;quuot;strrConnst : 0&p;quuot;, CClasss1.strrConnst); CConssole
10、e.WrriteeLinne(&p;quuot;strrStaaticcReaadonnly : 0&p;quuot;, CClasss1.strrStaaticcReaadonnly); CConssolee.ReeadLLinee(); 复制代码码结果: strrConnst : CConsst sstrSStatticRReaddonlly : SttatiicReeadoonlyy 修改改后的示示例: 测试类类:usinng SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSysttem.Texxt;nam
11、eespaace Exaamplle022Libb pubblicc cllasss Cllasss1 /pubblicc coonstt Sttrinng sstrCConsst = &aamp;quoot;CConsst&aamp;quoot; /pubblicc sttatiic rreaddonlly SStriing strrStaaticcReaadonnly = &p;quuot;StaaticcReaadonnly&p;quuot; puubliic cconsst SStriing strrConnst = &p;quuot;Connst Chaangeed
12、&aamp;quoot; puubliic sstattic reaadonnly Strringg sttrSttatiicReeadoonlyy = &ammp;qquott;SttatiicReeadoonlyy Chhangged&p;quuot; 复制代码码结果 sstrCConsst : Coonstt sttrSttatiicReeadoonlyy : StaaticcReaadonnly Chaangeed 33.exxterrn 是是什么意意思? 答: extternn 修饰饰符用于于声明由由程序集集外部实实现的成成员函数数 经常常用于系系统APPI函数数的调用用(通过
13、过 DlllImmporrt )。注意,和和DlllImpportt一起使使用时要要加上 staaticc 修饰饰符 也也可以用用于对于于同一程程序集不不同版本本组件的的调用(用用 exxterrn 声声明别名名) 不不能与 absstraact 修饰符符同时使使用511asppx 示示例:usinng SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSysttem.Texxt;usinng SSysttem.Runntimme.IInteeroppSerrvicces;nameespaace Exaamplle033 cla
14、ass Proograam /注意DDllIImpoort是是一个AAttrribuute Prooperrty,在在Sysstemm.Ruuntiime.IntteroopSeerviicess命名空空间中定定义 /extternn与DlllImmporrt一起起使用时时必须再再加上一一个sttatiic修饰饰符 DDllIImpoort(&ammp;qquott;Usser332.ddll&p;quuot;) puubliic sstattic extternn innt MMesssageeBoxx(innt HHanddle, sttrinng MMesssagee, sstri
15、ing Capptioon, intt Tyype); sttatiic iint Maiin() sstriing mySStriing; CConssolee.Wrritee(&aamp;quoot;EEnteer yyourr meessaage: &aamp;quoot;); mmySttrinng = Coonsoole.ReaadLiine(); rretuurn MesssaggeBoox(00, mmySttrinng, &ammp;qquott;Myy Meessaage Boxx&ammp;qquott;, 0); 复制代码码结果: 4.aabsttracct 是是什么意意
16、思? 答: absstraact 修饰符符可以用用于类、方法、属性、事件和和索引指指示器(iindeexerr),表表示其为为抽象成成员 aabsttracct 不不可以和和 sttatiic 、virrtuaal 、oveerriide 一起使使用 声声明为 absstraact 成员可可以不包包括实现现代码,但但只有类类中还有有未实现现的抽象象成员,该该类就不不可以被被实例化化,通常常用于强强制继承承类必须须实现某某一成员员 示例例:usinng SSysttem;usinng SSysttem.Colllecctioons.Genneriic;usinng SSysttem.Texxt;
17、nameespaace Exaamplle044 #reegioon 基基类,抽抽象类 pubblicc abbstrractt cllasss BaaseCClasss /抽象属属性,同同时具有有gett和seet访问问器表示示继承类类必须将将该属性性实现为为可读写写 puubliic aabsttracct SStriing Atttribbutee gget; sset; /抽象方方法,传传入一个个字符串串参数无无返回值值 puubliic aabsttracct vvoidd Fuuncttionn(Sttrinng vvaluue); /抽象事事件,类类型为系系统预定定义的代代理(d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序员 面试 必答
限制150内