了解C

C#能编写那些程序

  1. Windows桌面应用程序

    桌面应用有自己独立的进程与操作系统进行消息通讯,操作系统对事件进行检测,传递给桌面应用进程,桌面应用进程对这些消息进行解释,处理后,把处理结果ui变化告诉操作系统,操作系统再展示出来。

  2. Web应用程序

    web应用程序,是浏览器通过http协议,与web服务器进行通讯,用户申请服务器的资源,服务器接收到消息后,对申请资源进行解析,然后把web页面描述通过网络发送回浏览器,展示给用户。

  3. Web服务

    Web服务实现分布式应用程序的一种方式.

以上只是列出三种常用的应用程序
原文链接


什么是 .NET Framework

.NET Framework就是应用程序运行时的执行环境,为应用程序的执行提供一下几种服务.

  • 全面的类库
  • 内存管理
  • 通用类型系统(CTS)
    • CTS定义了可以在中间语言(在编译器将源代码编译为目的码的过程中,会先将源代码转换为一个或多个的中间表述,以方便编译器进行最佳化,并产生出目的机器的机器语言)中使用的预定义数据类型
  • 开发结构和技术 (.NET Framework提供特定应用程序所需的库,如Web应用程序的ASP.NET技术)
  • 语言互操作性 (面向 .NET Framework的语言编译器都提供了生成中间语言代码的机制,这种机制使得不同的语言之间进行互操作成为可能)

    .NET Framework的组成

  • 公共语言运行时(CLR包含CTS,CLS二个组成部分,我们将受CLR管理的代码称为托管代码,反之为非托管代码)
    • 通用类型系统(CTS 用于解决不同语言之间数据类型不同的问题.例如C#整型是int,vb.net中却是Integer)
    • 公共语言规范(CLS是一种最低的语言标准,它制定了一 .NET 平台为目标的语言所必须支持的最小特征,以在及某一种语言与其他.NET语言之间实现互操作所需要的完备特征)
  • .NET Framework(.net framework类库就是一组DLL程序集集合,其中包含了大量定义好的类型,这些类都公开了一些功能. 下图更好的理解公共语言运行时,类库与应用程序之间的以及整个操作系统之间的关系)

C#与 .NET Framework的关系

C#代码的执行过程

  1. C#代码编译为中间语言
  2. 中间语言代码编译为本机代码(即GPU指令,整个过程由JIT编译器来完成)
  3. 执行本机代码(编译好的本机代码会被放置到一个缓存区中缓存,下次调用时将直接运行现有代码)

随机推荐

  1. vue导航守卫和axios拦截器的区别

    在Vue项目中,有两种用户登录状态判断并处理的情况,分别为:导航守卫和axios拦截器. 一.什么是导航守卫? vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.(在路由跳转时 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:内联表单

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. markdown基本语法教程

    标题 一级标题 二级标题 三级标题 以此类推,总共六级标题,建议在警号后面加一个空格,这是最标准的markdown语法 列表 在markdown下: 列表的显示只需要在文字前加上-.+或*即可变为无序 ...

  4. Js 获取当前日期时间及其它操作(转)

    Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();   ...

  5. easyui学习索引页

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>复 ...

  6. java中将图片上传到配置好的ftp服务器上

    测试用例: @Test public void testFtp() throws Exception { //1.连接ftp服务器 FTPClient ftpClient = new FTPClien ...

  7. wdcp升级php5.8到php7.1.12后安装gitlab

    .安装依赖包 sudo yum install -y curl policycoreutils-python openssh-server cronie .使用清华大学开源软件镜像源安装 vim /e ...

  8. 【LOJ2127】「HAOI2015」按位或

    题意 刚开始你有一个数字 \(0\),每一秒钟你会随机选择一个 \([0,2^n-1]\) 的数字,与你手上的数字进行或操作.选择数字 \(i\) 的概率是 \(p[i]\) . 问期望多少秒后,你手 ...

  9. STL中的全排列实现

    permutation: 在遇到全排列问题时,在数据量较小的情况下可以使用dfs的做法求得全排列,同时我们也知道在STL中存在函数next_permutation和prev_permutation,这 ...

  10. 1_01_MSSQL课程_基础入门2

    1.数据库的迁移方案 ->分离 附加 ->权限问题: ->启用Administrator账号 ->把数据库文件放到默认的数据库文件存放目录. ->数据库文件兼容级别,设置 ...