.NET Framework是什么
.NET Framework是一个由微软设计和开发的软件框架,主要用来开发可以在Windows上运行的应用程序,框架中提供了包括网络,安全性,内存管理和类型安全在内的各种服务。并且它还支持60多种编程语言。
.NET Framework的构成
- 公共语言运行库(CLR)
- 框架类库(FCL)
- 核心语言(WinForms、ASP.NET和ADO.NET)
- 其他模块(WCF 、 WPF 、WF等)
公共语言运行库(CLR)
它为.NET应用程序提供了一个托管的代码执行环境(类似java中的虚拟机),是整个框架的核心,实际上CLR是驻留在内存里的一段代码,负责程序执行期间的代码管理工作,例如有内存管理,线程管理,安全管理,远程管理,即时编译等
CLR组成
Base Class Library Support
Thread Support COM Marshaler
Type Checker Exception Manager
Security Engine Debug Engine
IL to Nation Compilers Code Manager Garbage Collector
Class Loader
- Base Class Library Support(基础类库)
- Thread Support (线程支持)
- COM Marshaler(COM封送处理程序)
- Type Checker (类型检查器)
- Exception Manager(异常管理器)
- Security Engine(安全引擎)
- Debug Engine
- IL to Nation Compilers
- Code Manager(代码管理器)
- Garbage Collector(垃圾回收器)
- Class Loader(类加载器)
框架类库(FCL):是一个标准库,包含成千上万个类,主要用于构建应用程序。FCL的核心是BCL,BCL提供了FCL的基本功能,
C#是什么
由微软开发并获得ECMS和ISO批准的现代的、通用的、面向对象的编程语言
特点:
- C#是一种现代化的通用编程语言
- C#是面向对象、面向组件的
- C#简单易学
- C#是一种结构化语言
- C#开发效率高
- C#可以在各种平台上进行编译
- C#是.Net Framnework的一部分
C#与C的区别于java的区别
C是面向过程的,C#是面向对象的
- Java是Oracle开发的一种高级、健壮、安全和面向对象的编程语言,C#是微软开发的在.Net Framework上运行的一种面向对象的编程语言
- Java语言需要在Java运行环境(JRE)下运行,C#语言需要在公共语言运行库(CLR)上运行
- Java是类型安全的,C#不是类型安全的
- Java中只支持在创建数组时定义数组大小或给数组赋值,不支持在创建数组时即定义数组大小又给数组赋值,C#支持在创建数组时即定义数组大小又给数组赋值
- Java中,按值传递的内置数据类型称为原始类型,C#则称为简单类型
- Java不支持条件编译,C#支持使用预处理程序指令进行条件编译
- Java不支持goto语句,C#支持
- Java不支持structures(结构体)和unions(联合体),C#支持
- Java支持checked exception和 unchecked exception,C#仅支持unchecked exception
C#开发环境
.Net Framework 是一个平台,它提供了一个跨语言的统一编程环境,在这种平台上使用的开发语言有很多如Visual Basic .NET、Python、J#等
Visual Studio 下载和安装
官网下载Visual Studio 的安装程序,选择社区版可以免费使用
选择 .NET desktop development (.NET桌面开发) ,然后选择install进行安装
最后通过File 菜单来创建C#应用程序
之后下一步创建进入
测试一下项目是否能正常运行
放入Button按钮,属性窗口,点击右上角的闪电图标,然后直接双击按钮。
创建应用台控制程序
运行出的第一个程序
C#程序结构
using System;//using关键字用来在程序中引入System命名空间,一个程序可以有多个using语句
namespace ConsoleApp1 //namespace关键字用来声明一个命名空间,后面是命名空间的名字
{
internal class Program
/*C#中的internal访问修饰符表示 访问仅限于当前程序集
但是注意,internal修饰符修饰的类中,可以有public的成员变量和成员方法等
class 关键字用来定义一个类, Program则为类名,类中通常用来存放程序中要使用的数据和函数(方法)*/
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
/*WriteLine是System命名空间中定义的Console类里面的方法*/
Console.ReadKey();
/*针对VS.NET用户,它会使程序进入等待状态,因为命令行窗口会在程序运行结束后自动关闭,会导致我们想要输出的内容闪过,加此行代码可以避免这种情况*/
}
}
}
注意
- C#区分大小写,所有语句和表达式必须以英文分号结尾
- 程序从Main开始执行,
- 与java不同的是,程序文件名可以与类名不同命
- { }成对出现