C#基础与面试指南:Main函数、CLR与变量原理

需积分: 0 0 下载量 143 浏览量 更新于2024-07-22 收藏 182KB DOC 举报
"C#基础知识与面试重点" C#是一种面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发以及Web应用程序。以下是对标题和描述中提及的一些知识点的详细解释: 1. **Main函数**:Main函数是每个C#程序的起点,它是程序执行的第一行代码。Main函数的定义必须遵循特定的规则:函数名字必须是`Main`,且一个程序只能有一个Main函数。在C#中,Main函数可以是`static void Main(string[] args)`形式。 2. **CLR(Common Language Runtime)**:CLR是.NET Framework的核心组成部分,它提供了一个执行环境,使得用不同编程语言编写的代码能够在相同的平台上运行。程序集是编译后的代码集合,包含.exe可执行文件和.dll动态链接库。当运行一个程序集时,CLR会加载其中的所有类到内存,找到并执行主函数。 3. **值类型的默认值**:在C#中,值类型包括整型(如int)、布尔型(bool)、枚举(enum)和结构体(struct)。全局变量或静态变量如果没有初始化,会有默认值,例如int默认为0,bool默认为false。而局部变量必须在声明时显式赋值,因为它们不会自动初始化。 4. **声明和初始化变量**:声明变量时,系统会在栈中分配内存空间,但不包含任何初始值(默认值为null)。初始化变量时,对于值类型,系统会在栈中存储实际的值;对于引用类型,系统会在堆中创建对象,并在栈中存储指向该对象的引用。 5. **new关键字**:new关键字用于创建对象实例。它会分配内存空间,调用对应的构造函数初始化对象,并返回堆中的对象引用。此外,new还可以用来隐藏继承自父类的方法。 6. **数组**:数组是C#中用于存储固定数量同类型数据的数据结构。一旦创建,其长度不可变。多维数组本质上是一维数组的扩展,可以通过多个索引来访问元素。声明多维数组如`string[,] strArr = new string[3,3]`,获取总长度是各维度长度的乘积。 7. **交错数组**:交错数组实际上是一个数组的数组,即数组的元素是其他数组。声明交错数组如`int[][] arr = new int[3][3]`。交错数组的元素可以有不同的长度,灵活性较高。 8. **方法**:方法是代码块的封装,允许我们重用代码。方法可以通过重载来实现,即在同一类中声明多个同名方法,但参数列表不同。方法的参数可以是传值(value)、引用(ref)或输出(out)类型。引用参数(ref)和输出参数(out)都传递引用,但out参数必须在方法返回前被赋值,而ref更强调在方法内部修改传入的参数值。 以上是C#的基础知识和面试中常见的问题,掌握这些概念对于理解和编写C#程序至关重要。在面试中,对这些知识点的深入理解和应用往往能体现程序员的专业水平。