这里整理了C#程序员经常面试的面试题,摘自C#与.NET程序员面试宝典这本书中,希望这篇博客对大家有用。
25.传递参数的方法
C#中有4中方法来传递参数:传值、传址、输出参数和数组参数。传值参数无需额外的修饰符,传址参数需要修饰符.ref,输出参数需要修饰符out,数组参数需要修饰params。
26.如何理解C#中的预处理器指令
C#中的预处理器指令是在编译时调用的。预处理器指令通知C#编译器要编译哪些代码,并指出如何处理指定的错误和警告。C#预处理器指令还可以提示C#编辑器有关代码组织的信息。
27.简述C#中的Main()方法
Main()方法是程序的入口点,程序从这里开始,也是从这里结束。需要注意的是,在一个C#程序中,Main()方法有且只能有一个。
28.如何理解C#中的指针
C#中指针类型不继承Object,并且指针类型与Object之间不存在转换。此外,装箱和取消装箱也不支持指针。但是,C#允许在不同指针类型之间,以及指针类型与整形之间进行转换。
29.请举例System.Collections中常用的成员
ArrayList的基类是System.Collections,System.Collections中常用的类有ArrayList、HashTable、StoredList,常用的接口有ICollection、IEnumerable、IList、System.Collections结构DictionaryEntity可定义设置或检索的字典键/值对。
30.C#提供了哪几种循环结构
C#提供了do...while循环,while循环、for循环和foreach这4种循环语句。while循环与do...while循环非常类似,经常在循环次数不确定的场合,for循环用于处理已知循环次数的操作,而foreach循环用于处理已知集合的循环操作。
31.stringbuilder与string有什么区别
在相同字符串的许多操作上,使用StringBuilder类会比String对象更有效率。对于少量的字符串操作,使用String类比较方便。.NET对String对象对象扩展了许多便捷的字符串处理方法。
32.如何实现自定义格式字符串输出
通常,执行IFormattable的类也提供接收唯一格式的ToString()。在默认条件下,ToString()方法不接收任何参数,它继承于其他对象的类。IFormattable.ToString()方法接收一个IFormatProvider类型的参数,以允许类型的使用者提供格式化的方法。
33.怎样实现灵活强大的格式化输出
IFormattable让类型的使用者有机会提供格式化的方法。GetFormat()方法返回格式化器,通常情况下,该格式化器的类型是一个实现了ICustomFormatter的类型对象。IFormatProvider接口和IFormattable接口一起可以实现灵活强大的格式化输出。
34.请列出HashTable几种常用的遍历方法
HashTable有4种遍历方式。
以string对象为键值遍历哈希表。
以自定义对象为键值遍历哈希表。
以DictionaryEntiy对象为键值遍历哈希表。
通过继承IDictionaryEnumerator接口的对象来遍历哈希表。