出来工作两年,发现自己进步太小了,工作能力是不能混的,想先从基础知识好好复习一下,再深入的学习一些高级框架和先进的理念。找回了博客园的密码账号,好好学习和总结。先从数据类型总结一下,无非就是值类型,引用类型,在菜鸟教程上看到一种指针类型,这个之前没学习到之后总结一下。说明一下,个人总结方便查看,快速的话推荐看菜鸟教程,实体书效果更好,我自己买了一本厚厚的C#...

c# .net关系,c#是语言,.net是框架。大体是这样,有时候面试题也会这样问c# .net关系,这样回答在百度上也可以百度到。个人对c#总结一下,c#是专门为Microsoft的.net framework一起使用设计,它是基于面向对象设计的语言。c#基于.net 两只一起使用。

.NET Framework的核心是公共语言运行库(CLR)或.NET运行库,一般将CLR控制台下运行的代码称为托管代码(managed code). 在.NET中完成编译的两种方法:1·将源代码转换为Microsoft中间语言。2·利用CLR把IL编译成平台专用代码。Microsoft中间语言的理念:低级语言,语法简单,(语法简单表现在它使用数字代码而不是文本代码),能快速的转换为本地机器码,对于代码来说这种设计具有重要的有点:平台无关性,提高性能和语言的互操作

说到托管这个词,就说一个垃圾回收,用来在.NET中进行内存管理,特别是它可以恢复正在恢复在运行的应用程序需要的内存,再说说资源托管与非资源托管 详细有点长引用下(https://www.cnblogs.com/88lang/p/3961797.html)这个是有次面试面到的一道题

托管资源:
Net平台中,CLR为程序员提供了一种很好的内存管理机制,使得程序员在编写代码时不要显式的去释放自己使用的内存资源(这些在先前C和C++中是需要程序员自己去显式的释放的)。这种管理机制称为GC(garbage collection)。GC的作用是很明显的,当系统内存资源匮乏时,它就会被激发,然后自动的去释放那些没有被使用的托管资源(也就是程序员没有显式释放的对象)。
所以托管就是.net framework 负责帮你管理内存及资源释放,不需要自己控制,当然对象只针对托管资源(部分引用类型), 不回收非托管资源。 像数组,用户定义的类、接口、委托,object,字符串等引用类型,栈上保存着一个地址而已,当栈释放后, 即使对象已经没有用了,但堆上分配的内存还在,只能等GC收集时才能真正释放 ;但注意int,string,float,DateTime之类的值类型,GC会自动释放他们占用的内存,不需要GC来回收释放
那么非托管的资源怎么释放回收呢?

非托管资源: 
对于非托管资源,GC只能跟踪非托管资源的生存期,而不知道如何去释放它。这样就会出现当资源用尽时就不能提供资源能够提供的服务,windows的运行速度就会变慢。比如当你链接了数据库,用完后你没有显式的释放数据库资源,如果还是不断的申请数据库资源,那么到一定时候程序就会抛出一个异常。

所以,当我们在类中封装了对非托管资源的操作时,我们就需要显式,或者是隐式的释放这些资源在.Net中释放非托管资源主要有2种方式,Dispose,Finalize,而Finalize和Dispose方法分别就是隐式和显式操作中分别使用到的方法。
例如文件流,数据库的连接,系统的窗口句柄,打印机资源等等,当你读取文件之后,就需要对各种Stream进行Dispose等操作。比如 SqlDataReader 读取数据完毕之后,需要 reader.Dispose();等
Finalize一般情况下用于基类不带close方法或者不带Dispose显式方法的类,也就是说,在Finalize过程中我们需要隐式的去实现非托管资源的释放,然后系统会在Finalize过程完成后,自己的去释放托管资源。在.NET中应该尽可能的少用析构函数释放资源,MSDN2上有这样一段话:实现 Finalize 方法或析构函数对性能可能会有负面影响,因此应避免不必要地使用它们。用 Finalize 方法回收对象使用的内存需要至少两次垃圾回收。所以有析构函数的对象,需要两次,第一次调用析构函数,第二次删除对象。而且在析构函数中包含大量的释放资源代码,会降低垃圾回收器的工作效率,影响性能。所以对于包含非托管资源的对象,最好及时的调用Dispose()方法来回收资源,而不是依赖垃圾回收器。

 还有.net 的一些 中间语言,反射,程序集就不多说 详细可以查查别的博客看看 

转载于:https://www.cnblogs.com/zaisheng/p/10817218.html

c#语法复习总结(1)-浅谈c#.net相关推荐

  1. laytpl语法_浅谈laytpl 模板空值显示null的解决方法及简单的js表达式

    浅谈laytpl 模板空值显示null的解决方法及简单的js表达式 laytpl 模板语法 {{ d.field }} 输出一个普通字段,不转义html 官方的说明 但d.field 为空时会显示nu ...

  2. 一、C++语法基础(浅谈)

    AddictedToCpp:浅谈C++语法基础 一.计算机基础知识(简述内存) 1. 32位.64位处理器 2.CPU读取内存数据 3.关于指针所占内存大小 4.计算机存储器 5.编码规范 二.关于基 ...

  3. 高中计算机选修一学业水平测试知识点,浅谈普通高中信息技术学业水平测试复习策略...

    浅谈普通高中信息技术学业水平测试复习策略 [摘要]目前,信息技术在我国普通高中已成为必修课,江苏省已举行过八届高中信息技术会考,形成了一套完整有序的考核方案.08高考新方案的出台对高中信息技术水平测试 ...

  4. python语法中infile语句_浅谈pymysql查询语句中带有in时传递参数的问题

    直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...

  5. 浅谈解析库XPath,bs4和pyquery

    <浅谈解析库XPath,bs4和pyquery> 作者:墨非墨菲非菲 前几天在CSDN看到一篇帖子,题目是"如何让自己像打王者一样发了疯,拼了命,石乐志的学习".这里面 ...

  6. 浅谈人工智能:现状、任务、构架与统一

    引言 第一节 现状:正视现实  第二节 未来:一只乌鸦给我们的启示  第三节 历史:从"春秋五霸"到"战国六雄"  第四节 统一:"小数据.大任务&q ...

  7. HTTP协议漫谈 C#实现图(Graph) C#实现二叉查找树 浅谈进程同步和互斥的概念 C#实现平衡多路查找树(B树)...

    HTTP协议漫谈 简介 园子里已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲解. ...

  8. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  9. python中内置的四种数值类型为_浅谈python语言四种数值类型

    Python语言支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下.希望对 ...

  10. html4与html5效果,浅谈HTML5与HTML4的10个关键区别

    HTML5是HTML标准的下一个版本.越来越多的程序员开始HTML5来构建网站.如果你同时使用HTML4和HTML5的话,你会发现用HTML5从头构建,比从HTML4迁移到HTML5要方便很多.虽然H ...

最新文章

  1. 20家股东联名施压,要求贝佐斯停止向警方出售面部识别软件
  2. RedHat7.4最小化安装yum源不可用问题解决
  3. oauth2_带有Spring Security的OAuth 2.0快速指南
  4. 过滤器、拦截器、监听器的区别与使用
  5. Lucene索引库的维护功能实现
  6. 6.java 代码块
  7. hashmap 存取原理图_HashMap底层实现原理
  8. Camel:构建基于消息的应用程序
  9. 如何实现服务器转发客户端消息,socket 怎么实现服务器与客户端不停的互发消息呢?...
  10. (jquery插件)打造百分比动态色彩条
  11. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel
  12. SRM 574 DIV1 L2
  13. 将 PDF 转换为矢量图 emf
  14. 卡尔曼滤波原理详解及系统模型建立(simulink)
  15. android设置闹钟组件,Android 设置系统闹钟
  16. crc原理及c代码实现
  17. dcx游走 - 组合计数
  18. 263企业邮箱imap服务器,263企业邮箱实现IMAP邮箱搬家功能
  19. Android 使用PLDroidPlayer播放网络视频 依据视频角度自己主动旋转
  20. 猿人学web端爬虫攻防大赛赛题解析_第九题:js混淆-动态cookie2

热门文章

  1. java语言程序设计考题_《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)...
  2. 2022 年考研数据结构_6 图
  3. bash linux .ee,Linux下Bash shell学习笔记.md
  4. php ueditor怎么用,ueditor PHP版本使用方法
  5. java实现打印功能_Js 打印功能的实现(Java)
  6. 基于Zephyr在微型MCU上使用Tensor Flow Lite Micro做图像分类
  7. Linux内核开发_3_busybox
  8. Web开发入门型服务器使用心得
  9. 解析库之——beautifulsoup
  10. IOS开发之异步加载网络图片并缓存本地实现瀑布流(一)