学习C#(一)

C#简介

.NET Framework的含义

.NET Framework 是Microsoft为开发应用程序而创建的一个具有革命意义的平台。

可以使用.NET Framework创建桌面应用程序、Windows Store(UWP)应用程序、云/Web应用程序、Web API和其他各种类型的应用程序。

.NET Framework主要包含一个庞大的代码库,可以在客户端或服务器端语言(如C#)中通过面向对象编程(Object-Oriented Programming,OOP)技术来使用这些代码。这个库分为多个不同的模块,这样就可以根据希望得到的结果来选择使用其中的各个部分。

.NET Framework中包含一组基类库(Base Class Libraries,BCL),这些库中包含的API用于大多数开发人员需要程序完成的基本操作,例如访问文件、处理字符串、管理流、将数据保存到集合中、安全属性等。

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

要执行应用程序,必须要完成更多工作,这是Just-In-Time(JIT)编译器的任务,他把CIL编译为专用于OS和目标机器架构的本机代码。这样OS才能执行应用程序。这里编译器的名称Just-In-Time反映了CIL代码仅在需要时才编译的事实。这种编译可以在应用程序的运行过程中动态发生,不过开发人员一般不需要关心这个过程。

编译应用程序时,所创建的CIL代码存储在一个程序集(assembly)中。程序集包括可执行的应用程序文件(这些文件可以直接在windows上运行,不需要其他程序,其扩展名是.exe)和其他应用程序使用的库(其扩展名是.dll)。
除包括CIL外,程序集还包括元信息(即程序集中包含的数据的信息,也成为元数据)和一些可选的资源(CIL使用的其他数据,例如,声音文件和图片)。元信息允许程序集是完全自描述的。不需要其他信息就可以使用程序集,也就是说,我们不会遇到没有把需要的数据添加到系统注册表中这样的问题,而在使用其他平台进行开发时这个问题常常出现。
因此,部署应用程序就非常简单了,只需要把文件复制到远程计算机上的目录下即可。因为不需要目标系统上的其他信息,所以对于针对.NET Framework的应用程序,只需要从该目录中运行可执行文件即可(假设安装了.NET CLR)。而对于针对.NETCore的应用程序,运行该程序需要的所有模块都包含在部署包中,不需要进行其他配置。
在.NET Framework中,不必把运行应用程序需要的所有信息都安装到一个地方。可以编写一些代码来执行多个应用程序所要求的任务。此时,通常把这些可重用的代码放在所有应用程序都可访问的地方。在.NET Framework中,这个地方是全局程序集缓存(Global Assembly Cache,GAC),把代码放在这个缓存中十分简单,只需要把包含代码的程序集放在包含该缓存的目录中即可。

在将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR/CoreCLR的任务尚未全部完成,还需要管理正在执行的用.NET Framework和.NET.Core编写的代码(这个执行代码的阶段通常称为运行时(runtime)。

托管代码最重要的一个功能是垃圾回收(garbage collection)。这种.NET方法可确保应用程序不再使用某些内存时,就会完全释放这些内存。

在编译为CIL的C#代码未必包含在一个单独的文件中,可以把应用程序放在多个源代码文件中,再把他们编译到一个单独的程序集中,这个过程称为链接(linking)。

C#的含义

C#是可用于创建要运行在.NET CLR/CoreCLR上的应用程序的语言之一。它从C和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。
使用C#开发应用程序比C++简单,因为其语法更简单。但C#是一种强大的语言,在C++中能完成的任务几乎都能利用C#完成。C#代码通常比C++代码略长一些。这是因为C#是一种类型安全的语言(与C++不同)。C#只是用于.NET开发的一种语言,但它是最好的一种语言。C#的优点是,它是唯一彻头彻尾为.NET Framework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。

C#与C++等编程语言有类似之处,但也有自己的独特的编程语言。
一个入门C#小程序


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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            double num = 1.123456789;
            Console.WriteLine(num);
            Console.Read();
        }
    }
}

在C#中单引号与双引号有很大区别,单引号前char,双引号前string

ToUpper让字符串大写的方法

C#中可以用中文命名

Parse解析字符串
Tostring任何类型转化为字符串

发布了58 篇原创文章 · 获赞 3 · 访问量 2401

猜你喜欢

转载自blog.csdn.net/yang_jianfeng/article/details/103341200