C#学习笔记(四)-- .NET Framework与C#简介
为了进一步打好基础下一步的学习将围绕《C#入门经典(第8版)》展开。
一、.NET Framework和.NETCore简介
.NETFramework包含了一个庞大的代码库,主要应用于面向对象编程技术(Object-Oriented Promgramming,OOP),同时.NETFramework库还定义了一些基本类型,有助于使用.NETFramework的各种语言之间进行交互操作,这称为通用类型系统(Common Type System,CTS),除了这个库以外.NETFramework还包含.NET公共语言运行库(Common Language Runtime,CLR),它负责管理用.NET库开发的所有应用程序的执行。
在编译使用.NETFramework或.NET Core库的代码时,需要把代码编译为中间语言(Common Intermediate Language,CIL),这些CIL代码被存储在一个程序集中(程序集中还包括可执行程序.exe和其他程序使用的库.dll),而Just-In-Time(JIT)编译器会把它编译为专用于OS和目标机器架构的本机代码(仅在需要时进行编译)。将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR/CoreCLR的任务尚未完全完成,还需要管理正在执行的用.NET Framework和.NET Core编写的代码。即CLR/CoreCLR管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试,相反,不受CLR/CoreCLR控制运行的应用程序属于非托管类型,在C#中只能编写在托管环境下运行的代码,代码托管可以确保程序不再使用某些内存时,就会完全释放这些内存,避免大块内存被分配到错误的地方,导致系统变慢。
二、C#的含义
C#因其语法简单,因此其开发应用程序比C++简单,但C#是一种强大的语言,在C++中可以完成的任务几乎都可以利用C#完成。C#中一旦为某个数据制定了类型,就不能转换为另一种不相关的类型,因此C#编写的代码通常会比C++编写的要长,但C#代码更健壮,调试起来比较简单,.NET可以始终随时跟踪数据的类型。
C#学习笔记(四)-- .NET Framework与C#简介相关推荐
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...
- JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档
POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...
- Ethernet/IP 学习笔记四
Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...
- OpenCV学习笔记四-image的一些整体操作
title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 sP4 ...
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...
- esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机
arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...
- mysql新增表字段回滚_MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- ROS学习笔记四:理解ROS节点
ROS学习笔记四:理解ROS节点 本节主要介绍ROS图形概念,讨论ROS命令行工具roscore.rosnode和rosrun. 要求 要求已经在Linux系统中安装一个学习用的ros软件包例子: s ...
最新文章
- “不会Linux,怎么干程序员?”骨灰级工程师:干啥都不行!
- 关于扫描仪——你不知道的秘密
- Android root概念
- iphone固件降级_我在iPhone上装了个安卓
- 计算机科学技术的教育应用论文,浅谈计算机科学技术在计算机教学中的应用论文...
- yum 安装mysql的位置_Yum安装MySQL以及相关目录路径和修改目录
- python如何不跳行打印_python怎么不换行打印
- python多线程编程_python多线程编程(1): python对多线程的支持
- 72. 编辑距离(JavaScript)
- Knockout应用开发指南 第二章:监控属性(Observables)
- 百度信息流 绑定服务器,【实例】百度信息流账户搭建步骤
- R语言假设检验完整入门教程
- 利用C 语言求一元二次方程解
- html轮播图点击图片放大,jq点击图片 放大轮播
- 机器学习笔记09:支持向量机(二)-核函数(Kernels)
- 企业微信加密消息体_企业微信机器人怎么发消息?企业微信机器人可以定时发消息吗?...
- Node.js报错:UnhandledPromiseRejectionWarning: Unhandled promise rejection
- debian下切换内核
- 面试前夕知识点梳理之JavaScript(补充)
- LM321 低功耗单运算放大器 1MHZ增益带宽积 用于充电器 适配器
热门文章
- 引入CSS样式表的三种方法
- Android视频缓存机制——AndroidVideoCache
- 如何将闲置的平板作为第二显示器(分屏)使用
- 热烈庆祝华为在9月取得鸿蒙,余承东:明年华为智能手机全面支持鸿蒙系统
- 史元春和孙正兴:人机交互
- SLNA003020系列50MHz~4GHz低噪声放大器
- 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )
- openwrt安装Linux软件,OpenWrt安装软件的方法
- 安装elasticsearch-curator
- 国家一级期刊名录(2005)