当前位置: 首页 > news >正文

做网站使用什么软件的免费招聘网

做网站使用什么软件的,免费招聘网,建筑网站大全玻璃,wordpress的留言功能.NET C# 八股文 代码阅读#xff08;一#xff09; 目录 .NET C# 八股文 代码阅读#xff08;一#xff09;1 两种获10000个数的方式#xff0c;哪种效率更高#xff1f;为什么#xff1f;2 请说出以下代码AB谁先打印#xff0c;AB打印的值分别为多少#xff1f;3 关于….NET C# 八股文 代码阅读一 目录 .NET C# 八股文 代码阅读一1 两种获10000个数的方式哪种效率更高为什么2 请说出以下代码AB谁先打印AB打印的值分别为多少3 关于值类型与引用类型、装箱与拆箱以下代码会输出什么4 关于变量作用域以下代码会输出什么 1 两种获10000个数的方式哪种效率更高为什么 // 方式一 Listint ints new Listint(); for (int i 0; i 10000; i) {ints.Add(i); } // 方式二 float[] floats new float[10000]; for (int i 0; i 10000; i) {floats[i] i; }方式二因为List会不断扩容扩容时会反复拷贝造成性能损耗 2 请说出以下代码AB谁先打印AB打印的值分别为多少 static int GetInt() {int i 10;try{return i;}finally{i 11;Console.WriteLine(第B处 i i);} }static void Main(string[] args) {int i GetInt();Console.WriteLine(第A处 i i); } // 输出 // 第B处 i 11 // 第A处 i 10步骤如下 定义局部变量 i 并赋值为 10。进入 try 块准备返回 i 的值即 10。在返回之前进入 finally 块将 i 赋值为 11并打印 第B处 i i。返回值已经在 try 块中确定为 10即使在 finally 块中修改了 i 的值也不会影响返回值。 finally 块的特点是不论 try 中是正常返回还是异常抛出它总会在 try 块的返回语句执行前执行但它对已经确定的返回值不会有影响。因此GetInt 方法的返回值仍然是 10。 class Test {public int i 10; }static Test GetObj() {Test t new Test();try{return t;}finally{t.i 11;Console.WriteLine(第B处 i t.i);} }static void Main(string[] args) {Test t GetObj();Console.WriteLine(第A处 i t.i); } // 输出 // 第B处 i 11 // 第A处 i 11因为 GetObj 返回的是一个 Test 对象是引用类型所以返回的实际上是一个指向 Test 实例的地址 所以在 try 返回之前在 finally 中对这个对象进行了修改而 try 返回之后Main 中再根据这个地址找到这个 Test 实例自然也是 finally 修改之后的实例。 这两种情况的不同实际上是对 “赋值” 与 “修改” 的混淆如果想依旧实现与上面 GetInt 相同的输出代码应该改成如下 class Test {public int i 10; }static Test GetObj() {Test t new Test();try{return t;}finally{t new Test();t.i 11;Console.WriteLine(第B处 i t.i);} } static void Main(string[] args) {Test t GetObj();Console.WriteLine(第A处 i t.i); } // 输出 // 第B处 i 11 // 第A处 i 103 关于值类型与引用类型、装箱与拆箱以下代码会输出什么 interface IA {public int id { get; set; }public string name { get; set; }public int[] children { get; set; } }struct A : IA {public int id { get; set; }public string name { get; set; }public int[] children { get; set; } } class B {public int id { get; set; }public string name { get; set; }public int[] children { get; set; } }static void DoA (A a) {a.id6;a.nameBob;a.children[0]7; } static void DoB (B b) {b.id6;b.nameBob;b.children[0]7; }static void Main(string[] args) {var a new A();a.name Alick;a.children new int[] { 1, 2, 3 };DoA(a);Console.WriteLine($a - name: {a.name}, id: {a.id}, children0: {a.children[0]});IA ia a;DoIA(ia);Console.WriteLine($ia - name: {ia.name}, id: {ia.id}, children0: {ia.children[0]});Console.WriteLine($a - name: {a.name}, id: {a.id}, children0: {a.children[0]});var b new B();b.name Alick;b.children new int[] { 1, 2, 3 };DoB(b);Console.WriteLine($b - name: {b.name}, id: {b.id}, children0: {b.children[0]}); } // 输出 // a - name: Alick, id: 0, children0: 7 // ia - name: Bob, id: 6, children0: 7 // a - name: Alick, id: 0, children0: 7 // b - name: Bob, id: 6, children0: 7代码分析 结构体 A 和接口 IA 结构体 A 实现了接口 IA。 以 A 声明变量时是一个值类型因此在传递给方法时会进行值复制。 以 IA 声明变量时会进行装箱boxing使其变成对象因此在传递给方法时传递的是引用。 类 B B 是一个引用类型因此在传递给方法时会传递引用。 DoA 方法 DoA 直接操作结构体 A。 由于 A 是值类型传递给 DoA 时会创建一个副本。 修改副本的 id 和 name 不会影响原来的 A但修改数组引用类型的内容会影响原数组。 name 是 string 类型也是引用类型但对 string 类型的修改都会创建新的字符串所以相当于是赋予了新的引用地址并没有修改 name 原来的字符串实例。 DoIA 方法 DoIA 操作的是接口 IA。 虽然传递的是实现了 IA 的结构体 A但是接口会装箱boxing这个结构体使其变成对象。 装箱后的修改会影响装箱后的对象但不会影响原来的结构体实例。 DoB 方法 DoB 操作的是类 B。 由于 B 是引用类型传递的是引用方法中的修改会影响原对象。 4 关于变量作用域以下代码会输出什么 Action action null; for (int i 0; i 10; i) {action () Console.WriteLine(i); } action.Invoke(); // 输出 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0分析代码 定义一个空的 Action 委托 Action action null;使用 for 循环添加匿名方法到 action for (int i 0; i 10; i) {action () Console.WriteLine(i); }在每次循环中都会将一个新的匿名方法Lambda 表达式添加到 action 委托中这个匿名方法会打印变量 i 的值。 调用 action 委托 action.Invoke();由于 Lambda 表达式捕获的是变量 i 的引用而不是它的当前值当 action.Invoke() 被调用时for 循环已经完成变量 i 的值已经变成了 10。因此所有的匿名方法在被执行时都会打印当前 i 的值也就是 10。 Action action null; for (int i 0; i 10; i) {int localI i; // 引入一个新的局部变量action () Console.WriteLine(localI); } action.Invoke(); // 输出 // 0 // 1 // 2 // 3 // 4 // 5 // 6 // 7 // 8 // 9这样每个匿名方法都会捕获自己的 localI 变量这个变量在每次循环迭代时都有自己唯一的值。
http://www.w-s-a.com/news/449988/

相关文章:

  • 宁波网站建设公司推荐哪家淄博网站制作公司服务
  • 做网站网页挣钱不免费主题wordpress
  • 如何提高你的网站的粘性手机网站整站模板下载
  • 学校网站建设制度网站相关推荐怎么做
  • 昌图网站wordpress 视频外链
  • 企业网站要怎么建设重庆住房城乡建设部网站
  • html5网站特点seo教程培训班
  • 深圳网站建设哪个最好网站 多语
  • 互联网工具型网站创意网络广告
  • 影视公司网站建设网页界面设计分辨率是多少dpi
  • 免费的做微博的网站模板wordpress 页面 首页
  • 摄影图片网站网站辅导运营与托管公司
  • 做课件的网站长春免费建站模板
  • 响应式网站模板下载免费wordpress 小工具移动
  • 网站标签title在线app制作平台
  • 做电器推广的网站简洁大方的网站模板
  • 网站开发的平台100个详情页设计图
  • wordpress淘宝客建站教程视频知名的设计公司网站
  • 批量做单页网站怎么直接用代码做网站
  • 百度收录较好的网站办公室装修设计方案
  • 建设购物网站要求cnzz数据统计
  • 深圳自适应网站建设价格广东网站建设软件
  • 网页设计介绍北京网站自己做彩票网站
  • 最牛论坛网站app生成链接
  • 用jsp做的网站源代码网站优化说明
  • 网站建设公司名字甘肃省和住房建设厅网站
  • 做外贸网站需要什么卡网站建设公司怎样
  • 网站关键词密度怎么计算的中文版wordpress
  • asp网站建设教程如何在线上推广自己的产品
  • 电脑网站你懂我意思正能量济南网站建设公司熊掌号