DotNet面试宝典

合集下载

50个.NET面试题

50个.NET面试题

.NET常见面试题面试题1 什么是CTS、CLS和CLR公共语言运行库(CLR)是一个CLI的一个实现,包含了.NET运行引擎和符合CLI的类库。

通用类型系统(CTS)包含在微软公司提交的CLI规范,定义了一个可以在CLR上运行的类型规范。

公共语言规范是CTS的一个子集,定义了所有面向.NET的程序所需要符合的最小规范集。

面试题2 CLR技术和COM技术的比较CLR和COM都定义了组件间交互的规范。

COM并没有定义如何描述组件间的依赖性,并且由于其严格的物理约定,造成了很多组件版本升级和控制的问题。

CLR运用元数据和逻辑类型定义等机制,有效地解决了COM遗留的一些问题。

并且,相较于COM模型,笔者认为CLR更容易理解和学习。

面试题3 JIT是如何工作的JIT引擎在编译中间代码之前,会寻找方法的本机机器代码缓存并且判断其是否可用,如果可用则直接加载,如果不可用,JIT引擎会查找类型中的方法存根,找到该中间代码并且进行编译。

面试题4 怎么把程序集放入GAC中GAC是一个具有特定目录结构的文件夹,所有强签名的程序集都可以被放入GAC中。

可以通过.NET Framework自带的assembly viewer来简单地拖动添加一个程序集到GAC中,也可以利用诸如gacutil.exe 等工具使用命令行来添加。

总之,任何方法归根结底,都是根据GAC的规范和程序集本身的特性,在GAC目录下建立相应的子目录结构。

面试题5 值类型和引用类型的区别所有继承自System.ValueType的类型是值类型,而其他类型都是引用类型。

值类型的赋值会产生一个新的数据副本,所以每个值类型都拥有一个数据副本,而引用类型的赋值则是赋值引用。

值类型的对象分配在堆栈上,而引用类型的对象分配在堆上。

当比较两个值类型时,进行的是内容比较,而比较两个引用类型时,进行的是引用比较。

说明:笔者这里列举的,仅仅是值类型和引用类型一些主要的区别,通过这些本质区别,可以产生更多的细节区别,有兴趣的读者可以自己总结整理。

Net面试题(有答案)

Net面试题(有答案)

Net 面试题大全(有答案)和 面试集合1 (1)面向对象的语言具有__继承性_性、_封装性_性、_多态性性。

(2)能用foreach遍历访问的对象需要实现_ IEnumerable 接口或声明_ GetEnumerator 方法的类型。

1.c#中的三元运算符是__?:__2.当整数a赋值给一个object对象时,整数a将会被__装箱___?3.类成员有__3__种可访问形式?4.public static const int A=1;这段代码有错误么?是什么?const成员都是static所以应该去掉static5.float f=-123.567F;int i=(int)f;i的值现在是_-123____?6.利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了“==“ 就必须重载“!=“7.委托声明的关键字是___ delegate ___?8.用sealed修饰的类有什么特点?不可被继承9.在中所有的自定义用户控件都必须继承自_ erControl _______?10.在.Net中所有可序列化的类都被标记为__[serializable]___?11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ gC __?12.下面的代码中有什么错误吗?_ abstract override 是不可以一起修饰______using System;class A{public virtual void F(){Console.WriteLine(“A.F“);}}abstract class B:A{public abstract override void F();}13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以or 不可以)从T派生出新的类,_不可以_(可以or 不可以)直接创建T的任何实例。

14.下面这段代码有错误么?case():不行default;switch (i){case():CaseZero(); break;case 1:CaseOne();break;case 2:dufault;CaseTwo();break;}15.在.Net中,类System.Web.UI.Page 可以被继承么?可以2. 不定项选择:(1) 以下叙述正确的是:B CA. 接口中可以有虚方法。

DoNet面试题面试相关常见题答案

DoNet面试题面试相关常见题答案

1.什么是CTS、CLS和CLR?答:微软公司向ECMA提交了一份语言和数据格式规范叫“公共语言基础(CLI)”。

CTS 是通用类型系统(Common Type System),它定义了一个能够在CLR上运行的语言规范。

CLS是公共语言规范,是CTS的一个子集,它定义了在.net平台上运行的程序的语言所需符合的最小规范。

CLR的全称是公共语言运行时(Common Language RunTime),包含运行.net 程序的引擎和一些符合公共语言基础结构的类库的集合。

CLR是CLI的一个实现。

程序被编译成什么形式的代码?答:.NET程序在第一次编译后,形成CLR头、元数据和中间代码。

在实施运行或者部署时,将经过第二次编译,编译的结果是在CLR中可执行的机器代码。

3.什么是受托管的代码?(华为公司2006年面试题)答:公共语言运行库CLR包含运行.NET程序的引擎和符合公共语言基础结构的类库的集合,.NET程序都基于CLR的类库来实现,并运行在CLR提供的运行引擎之上。

4.什么是应用程序域?它和进程有什么区别?(HP公司2007年面试题)答:应用程序域是CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能类似于操作系统的进程。

进程是操作系统通过在应用程序自己的进程中运行各个应用程序来防止应用程序互相影响。

如果一个应用程序由于某种原因失败,则只影响该进程。

中所有内建类型的基类是什么?答:System.Object6.System.Object中包含哪些方法,哪些是虚方法?7.值类型和引用类型的区别。

(微软公司2006年面试题)答:所有继承自System.ValueType(System.ValueType继承自System.Object)的类型都是值类型,而其他类型都是引用类型。

值类型的赋值会产生一个新的数据副本,所以每个值类型都有一个数据副本,而引用类型的赋值则是赋值引用。

值类型的对象分配在堆栈上,而引用类型的对象分配在堆上。

DotNet面试题汇总

DotNet面试题汇总

DotNet面试题汇总1.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换a=a+b;b=a-b;a=a-b;据说还可以这样:a^=b^(b^=a^b); 不了解是什么原理2.已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组public class TestQuickSort {private int[] array = null;private void quickSort(int lowest, int highest) {if (array == null || lowest < 0 || lowest >= highest|| highest >= array.length) {return;}int low = lowest;int high = highest;int key = low++;for (; low <= high;) {if (key < high) {if (array[key] > array[high]) {array[high] = array[key] + (array[key] = array[high]) * 0;key = high;}high--;}if (key > low) {if (array[key] < array[low]) {array[low] = array[key] + (array[key] = array[low]) * 0;key = low;}low++;}}quickSort(lowest, key - 1);quickSort(key + 1, highest);}/*** @param args*/public static void main(String[] args) { TestQuickSort test = new TestQuickSort(); int[] array = {6,5,2,9,7,4,0};test.array = array;test.quickSort(0, array.length - 1);int length = test.array.length;for (int i = 0; i < length; i++) {System.out.println(test.array[i]);}}}快速排序是综合性能最好的内部排序算法!3.请简述面向对象的多态的特性及意义!多态:面向对象的语言使用虚方法表达多态。

.NET面试题汇总(带答案)

.NET面试题汇总(带答案)

.NET⾯试题汇总(带答案)1.维护数据库的完整性、⼀致性、你喜欢⽤触发器还是⾃写业务逻辑?为什么?答:尽可能⽤约束(包括CHECK、主键、唯⼀键、外键、⾮空字段)实现,这种⽅式的效率最好;其次⽤触发器,这种⽅式可以保证⽆论何种业务系统访问数据库都能维持数据库的完整性、⼀致性;最后再考虑⽤⾃写业务逻辑实现,但这种⽅式效率最低、编程最复杂,当为下下之策。

2.什么是事务?什么是锁?答:事务是指⼀个⼯作单元,它包含了⼀组数据操作命令,并且所有的命令作为⼀个整体⼀起向系统提交或撤消请求操作,即这组命令要么都执⾏,要么都不执⾏。

锁是在多⽤户环境中对数据的访问的限制。

SqlServer⾃动锁定特定记录、字段或⽂件,防⽌⽤户访问,以维护数据安全或防⽌并发数据操作问题,锁可以保证事务的完整性和并发性。

3.什么是索引,有什么优点?答:索引象书的⽬录类似,索引使数据库程序⽆需扫描整个表,就可以在其中找到所需要的数据,索引包含了⼀个表中包含值的列表,其中包含了各个值的⾏所存储的位置,索引可以是单个或⼀组列,索引提供的表中数据的逻辑位置,合理划分索引能够⼤⼤提⾼数据库性能。

4.视图是什么?游标是什么?答:视图是⼀种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进⾏增该查操作;视图通常是⼀个或多个表的⾏或列的⼦集;视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相⽐多表查询更⽅便),限制数据检索(⽐如需要隐藏某些⾏或列),维护更⽅便。

游标对查询出来的结果集作为⼀个单元来有效的处理,游标可以定位在结果集的特定⾏、从结果集的当前位置检索⼀⾏或多⾏、可以对结果集中当前位置进⾏修改、5.什么是存储过程?有什么优点?答:存储过程是⼀组予编译的SQL语句它的优点:1.允许模块化程序设计,就是说只需要创建⼀次过程,以后在程序中就可以调⽤该过程任意次。

2.允许更快执⾏,如果某操作需要执⾏⼤量SQL语句或重复执⾏,存储过程⽐SQL语句执⾏的要快。

.NET面试题大全(C#面试题)2020更新

.NET面试题大全(C#面试题)2020更新

.NET⾯试题⼤全(C#⾯试题)2020更新⽬录:⼀、笔试⾯试题⼆、问答⾯试题⼀、笔试⾯试题:1. 简述 private、 protected、 public、 internal 修饰符的访问权限。

答 . private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同⼀命名空间内可以访问。

2 .列举 页⾯之间传递值的⼏种⽅式。

答. 1.使⽤QueryString, 如....?id=1; response. Redirect()....2.使⽤Session变量3.使⽤Server.Transfer4.使⽤Application5.使⽤Cache6使⽤HttpContext的Item属性7.使⽤⽂件8.使⽤数据库9.使⽤Cookie3. ⼀列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,⽤递归算法实现。

答:public class MainClass{public static void Main(){Console.WriteLine(Foo(30));}public static int Foo(int i){if (i <= 0)return 0;else if(i > 0 && i <= 2)return 1;else return Foo(i -1) + Foo(i - 2);}}4.C#中的委托是什么?事件是不是⼀种委托?答:委托可以把⼀个⽅法作为参数代⼊另⼀个⽅法。

委托可以理解为指向⼀个函数的引⽤。

是,是⼀种特殊的委托5.override与重载的区别答:override 与重载的区别。

重载是⽅法的名称相同。

参数或参数类型不同,进⾏多次重载以适应不同的需要Override 是进⾏基类中函数的重写。

100道C#面试题(.net开发人员必备)

100道C#面试题(.net开发人员必备)注明:经过本人面试的经历和在网上的资料整理出来的100道比较常见的C#面试题,想当初面试公司虽然不是很多,第一次找工作用了近两周的时间面试了二十多家公司,成功的不到十家,最后选择了一家大型的软件公司干了两个月就走人了。

后来又找了一周工作,面试了十一家公司,成功9家。

现在已经在公司工作了快两年的时间了。

以下的面试题也是自己曾经做过的,希望能帮助更多的同行找到满意的工作1. .NET和C#有什么区别答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。

C#是一种编程语言,可以基于.NET平台的应用。

2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。

答:public class MainClass{public static void Main(){Console.WriteLine(Foo(30));}public static int Foo(int i){if (i <= 0)return 0;else if(i > 0 && i <= 2)return 1;else return Foo(i -1) + Foo(i - 2);}}3. C#中的委托是什么?事件是不是一种委托?答 : 委托可以把一个方法作为参数代入另一个方法。

委托可以理解为指向一个函数的引用。

是,是一种特殊的委托4. 简述 private、 protected、 public、internal 修饰符的访问权限。

答 . private : 私有成员, 在类的内部才可以访问。

protected: 保护成员,该类内部和继承类中可以访问。

public: 公共成员,完全公开,没有访问限制。

internal:在同一命名空间内可以访问。

5. override与重载的区别答:override 与重载的区别。

dotNet高级软件工程师面试题

dotNet高级软件工程师面试题1.有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。

请用SQL语句实现将上表中的数据合并,合并后的数据为:p_ID s1_id s2_id s3_id1 10 12 02 8 0 03 11 0 8其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量。

如果该产品在某仓库中无库存量,那么就是0代替。

2.叙述Page页面的生命周期。

(即写出Page几个主要的事件运行顺序)3.有ab.aspx页面,在codebehind里动态在页面里创建一checkbox控件,创建后用户在页面选中该checkbox,在codebehind里如何取该checkbox的值?(即是选中还是未选中状态)4.Session跟Cookie有什么关系?假如IE禁止使用cookie,那Session还有用吗?5.c#中的关键字this,在class中和在struck中如何使用?6.如何理解装箱、坼箱操作?运用此操作时对系统性能有什么影响? 7.XML中的XmlDocument 跟 XmlReader有什么区别?8.接口跟抽象有什么异同?你在平时项目设计过程中何时使用接口? 何时使用抽象类?9. public void Check(string s){.....}public void Check(ref string s){.....}Public void Check(out string s){.....}上面的三个方法传入的参数有什么不同?另外请说明string是什么数据类型(值类型?引用类型?)。

10. 如图,如何找出他们的交叉区域。

请写出你的实现思路。

|-------|| || || |--|----|| | || | | ||----|--| | |-------|。

.net面试题

.net面试题.net面试题在各个领域,我们很多时候都不得不用到试题,借助试题可以对一个人进行全方位的考核。

你所见过的试题是什么样的呢?以下是我细心整理的.net面试题,希望能够关怀到大家。

1、维护数据库的完整性、全都性、你宠爱用触发器还是自写业务规律?为什么?答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、全都性;最终再考虑用自写业务规律实现,但这种方式效率最低、编程最简洁,当为下下之策。

2、什么是事务?什么是锁?答:事务是指一个工作单元,它包含了一组数据操作命令,并且全部的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。

锁是在多用户环境中对数据的访问的限制。

SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据平安或防止并发数据操作问题,锁可以保证事务的.完整性和并发性。

3、什么是索引,有什么优点?答:索引象书的名目类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引供应的表中数据的规律位置,合理划分索引能够大大提高数据库性能。

4、视图是什么?游标是什么?答:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作;视图通常是一个或多个表的行或列的子集;视图的结果更简洁理解(修改视图对基表不影响),猎取数据更简洁(相比多表查询更便利),限制数据检索(比如需要隐藏某些行或列),维护更便利。

游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、5、什么是存储过程?有什么优点?答:存储过程是一组予编译的SQL语句它的优点:1、允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 1、简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。

2、ADO.NET中的五个主要对象 Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及调用存在数据库中的存储过程等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连接到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Command 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,DataSet是放在内存中的。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是ADO.NET 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。DataSet包含若干DataTable、DataTableTable包含若干DataRow。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 ADO.NET 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 对象操作数据结果。

3、列举ASP.NET 页面之间传递值的几种方式。 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 4.Cookie传值 5.Application传值 6.PreviosPage

Server.Transfer和Response.Redirect的区别:Server.Transfer是服务器内部的转接,浏览器不知晓;Response.Redirect是有浏览器参与的,所以在地址栏中可以看到地址的变化。

4、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的指针。 委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件是用来阉割委托实例的,类比用一个自定义类阉割List。事件只能add、remove自己,不能赋 2

值。事件只能+=、-=,不能= 。加分的补充回答:事件内部就是一个private的委托和add、remove两个方法。面试聊:用Reflector查看.Net的类的内部实现,解决问题。 5、override与重载(overload)的区别 重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。重载(overload)是面向过程的概念。 Override 是进行基类中函数的重写。Override是面向对象的概念 6、C#中索引器是否只能根据数字进行索引?是否允许多个索引器参数? 参数的个数和类型都是任意的。加分的补充回答:用reflector反编译可以看出,索引器的内部本质上就是set_item、get_item方法。加分的补充回答:回答传智播客.net培训中讲解设计模式中开发的SettingsProvider就是用的string类型的参数名做索引器参数。 7、属性和public字段的区别是什么?调用set方法为一个属性设值,然后用get方法读取出来的值一定是set进去的值吗? 属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置。虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的,极端的例子。Public Age{get{return 100;}set{}}。加分的补充回答:用reflector反编译可以看出,属性内部本质上就是set_***、get_***方法,详细参考传智播客.net培训视频中串讲.net基础的部分。 class Person { public int Age { get { return 3; } set {

} } } Person p1 = new Person(); p1.Age = 30; p1.Age++; Console.Write(p1.Age);//输出3

8、三层架构 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。 区分层次的目的即为了“高内聚,低耦合”的思想。 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3

数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。 三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。

9、MVC模式 (*) MVC(Model View Controller)模型-视图-控制器 aspx就是View,视图;Model:DataSet、Reader、对象;Controller:cs代码。

MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。

10、什么是装箱(boxing)和拆箱(unboxing)? (*) 装箱:从值类型接口转换到引用类型。 拆箱:从引用类型转换到值类型。 object obj = null;//引用类型 obj = 1;//装箱,boxing。把值类型包装为引用类型。 int i1 = (int)obj;//拆箱。unboxing

11、什么叫应用程序域(AppDomain) (*) 一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。 应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。 在一个单独的进程中可以存在多个应用程序域。应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

12、CTS、CLS、CLR分别作何解释(*) CTS:Common Type System 通用系统类型。Int32、Int16→int、String→string、Boolean→bool CLS:Common Language Specification 通用语言规范。不同语言语法的不同。 CLR:Common Language Runtime 公共语言运行时,就是.Net提供的那些 类。

13、在dotnet中类(class)与结构(struct)的异同? Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。 Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。加分的回答:Int32、Boolean等都属于结构体。

14、堆和栈的区别? 栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

15、能用foreach遍历访问的对象的要求

相关文档
最新文档