今天开始学习 C#,所有学习资料来源于: 菜鸟教程
一、C# 简介
C# 是 .NET
框架的一部分,随之创造出来的语言,所以了解 C# 前,需要知道 .NET 是个什么东西。
1.1 .NET 框架介绍
.NET
是微软提出的 Web 的一种软件开发模型:
.NET 是一个开源平台,用于构建能够在任何操作系统上本地运行的桌面、Web 和移动应用程序。.NET 系统包括支持现代、可扩展和高性能软件开发的工具、库和语言。.NET 平台有一个活跃的开发人员社区来维护和支持。
概括的说, .NET
提供了一套代码组件,通过使用这套组件,我们可以使用 C#、C++、VB、JS等客户端语言来编写:
- 桌面应用程序
- Web 网页
- Web 服务
- 移动端 App
- …
可以看出 .NET
框架是跨平台的。其次 .NET
的核心代码基本是由 C#
编写的。因此使用 C# 来写 .NET 应用更加舒适。
.NET 的具体介绍可以看:.NET 免费开源开发平台
1.2 C# 介绍
C# 是由微软开发,一个由 C 和 C++ 衍生出来的一种安全、稳定、简单的面向对象语言,它摒弃了这两种语言复杂的缺点,更加易用。
C# 语法与 java 语法非常相似,因此 Java 开发者可以很顺滑的过渡使用 C#。
C# 作为一个现代语言,和其它现代语言相比(GO、Kotlin等),我认为它只有唯一一个特点:
- 是 .NET 框架的一部,是其平台的主流,有较为强大框架做支持
除此之外,其它官网或学习资料所列出来的 “特点” ,并不能称的上是特点:
- 现代的、通用的编程语言
它汲取 C、C++ 的精华并去其糟粕 - 面向对象编程(OOP)
- 面向组件编程(COP)
这个词有点唬人,它本质上是在高复杂度软件下诞生出来的一种解决代码间高耦合低内聚问题的方法。
例如 Android 就提供了四大组件Activity
、Service
、ContentProvider
、BroadcastReceiver
来分隔 Android 中重要的能力,使得开发者不会混用它们,每个组件有自己独有的能力、特有的编程规范 - 更容易学习上手
- 开发效率高
C# 有 .NET 语法糖及大量代码库加持,开发效率高 - 跨平台
C# 在市占率比较尴尬, 打不过 C、C++、 Java、Python 等语言,其主要运营的场景:
- Windows 应用开发、网页开发
- 游戏(Unity 引擎)
1.3 C# 的编程功能
- 布尔条件(Boolean Conditions)
- 自动垃圾回收(Automatic Garbage Collection)
- 标准库(Standard Library)
- 组件版本(Assembly Versioning)
- 属性(Properties)和事件(Events)
- 委托(Delegates)和事件管理(Events Management)
- 易于使用的泛型(Generics)
- 索引器(Indexers)
- 条件编译(Conditional Compilation)
- 简单的多线程(Multithreading)
- LINQ 和 Lambda 表达式
- 集成 Windows
- 协程(在Unity引擎上)
2. 开发环境
现在基本是用微软提供的 IDE : Visual Studio(VS) 进行开发,直接上官网下载免费的社区版即可。
学习时,使用 VS 创建一个项目,选择
但是作为一名 Android 开发,我已经习惯了 JB IDE 的布局和快捷键,幸运的是, JB 也提供了 C# 的编辑器 – JetBrains Rider,下载地址:官网下载地址,因此我毅然的选择 Rider。
使用 Rider 创建项目时选择 Console Application:
之后便可运行第一个 Hello World 了。