重新学习C#(零)——第一个程序

好吧,之前学C#不够认真,现在重开一个专题学习C#。

0..net与C#

一般指.Net Framework框 架,是Microsoft为开发应用程序而创建的一个具有革命意义的平台,最新的版本为4.5。

.net(dotnet)内容:①主要包含一个庞大的代码库,可以在客户语言(如C#)中通过面向对象编程技术(OPP)来使用这些代码。这个库分为多个不同的模块,这样就可以根据希望得到的结果来选择使用部分。②定义了基本的类型。这也被称为通用类型系统(Common TypeSystem,CTS)。③包含.NET公共语言运行库(Common Language Runtime,CLR),负责管理用.NET库开发的所有应用程序的执行。

C#(C sharp):是运行在.NETCLR.上的,用于创建应用程序的一种高级编程语言。其中CLR指的是Common language runtime,即公共语言运行库,用于创建应用程序

C#可以用来编写桌面应用程序:使用.NET Framework的Windows PresentationFoundation(WPF)模块就可以简便地生成这种程序。Windows Store应用程序: WIN8中 新引入的一类应用程序, 针对触摸屏设计,通常全屏运行。Web应用程序:它们是一 -些Web页面,可以通过任何Web浏览器查看。可以用C#语言通过Web Forms创建ASP.NET应用程序。WCF服务:这是一种灵活创建各种分布式应用程序的方式。使用WCF服务可以通过局域网或Internet交换几乎各种数据。

.net包含两种交互模式,一种是C/S(C/S是Client/Server的缩写。客户端需要安装专用的客户端软件。):客户机(Client)/服务器模式(Server),如:qq,另一种是B/S(B/S是Brower/Server的缩写,客户机上只要安装一个浏览器):浏览器(Browser)/服务器模式(Server)

高版本软件向下兼容低版本软件,如果低版本想要打开高版本软件的话,可以换高版本软件或者下载转换器。

使用.NET Framework编写应用程序,就是使用.NET代码库编写代码(使用支持Framework的任何一种语言)为执行C#代码,必须把它们转换为目标操作系统能够理解的语言,即本机代码(native code),这种转换称为编译代码,由编译器执行。

所谓的CIL是指,在编译使用.NET Framework库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language)。这些代码并非专门用于任何一种操作系统,也非专门用于C#其他.NET语言,如Visual Basic .NET也可以在第一阶段编译为这种语言,开发C#应用程序时,这个编译步骤由IDE完成。

所谓的程序集指的是在编译应用程序时,所创建的CIL代码存储在一个程序集中。程序集包括可执行的应用程序文件(exe)和其他应用程序使用的库(dl).

JIT编译器,英文写作Just-In-Time Compiler,中文意思是即时编译器。JIT编译器能够将CIL编译成为各种不同的机器代码,以适应对应的系统平台,最终使得程序在目标系统中得到顺利地运行。

在将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR的任务还没有全部完成,还需要管理正在执行的用.NETFramework编写的代码(这个执行代码的阶段通常称为运行时(runtime) )。即CLR 管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试等。

相反,不受CLR控制运行的应用程序属于非托管类型,某些语言如C++可以用于编写这类应用程序,例如,访问操作系统的低级功能。但是在C#中,只能编写在托管环境下运行的代码。我们将使用CLR的托管功能,让.NET 自己与操作系统进行交互。

简单点说,托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:1源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#J#)2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等)。

创建.net应用程序所经历的步骤为:1.使用某种.NET兼容语言(如C#)编写代码;2.把代码编译为CIL,存储在程序集中;3.在执行代码时,使用JIT编译器将代码编译为本机代码;4.在托管的CLR环境下运行本机代码,以及其他应用程序或进程

控制台程序(Console Application)是为兼容MS-DOS而创建的一种程序,此程序只有一个单一的界面。

1.编写程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lesson_0
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();//等待用户按键输入
        }
    }
}
发布了363 篇原创文章 · 获赞 32 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_35789421/article/details/104388682