C Sharp(一)
發佈於 2018-10-15
之前本来想学习一下 NodeJS,考虑到最近一直在使用 C#(主要使用 .Net Core 的 MVC 和 API),并且之前也仔细地研究过一段时间的 C#,.Net 平台的发展也有上升趋势,最近微软收购 Github,打算整合自己的平台,还有 Visual Studio 这一个宇宙第一 IDE 加持,所以就打算把后台技术栈先放在 .Net 上。 目前的打算是将 C# 的知识都过一遍,再逐渐学习一些常用类库,最后把 ASP.Net Core MVC 和 API 都好好看看。 这次我打算边复习边将 C# 中的概念与其他语言做一下对比,以方便有其他语言基础的同学可以更好地理解在 C# 中的相似概念。
要注意在使用 .Net 进行开发时,我们要知道 Solution 和 Project 的区别:
我们可以使用 C# 写出上述各种类型的应用,有的已经过时了,现在主流使用技术是: WebMVC、WebAPI 以及 WCF。
C# 程序的本质是由多个类型声明组成。命名空间则是与某个名称相关联的一组类型声明。(在写 Objective-C 或者 Swift 时,是没有命名空间的概念,所以官方给出的最佳实践是使用前缀的方式来区分不同类型。)
C# 中标识符规则:
C# 语言的标识符是大小写敏感的,这一点跟 Objective-C,Swift,JavaScript 都一样。
C# 中的语句必须以分号作为结束标志。 块是由成对的大括号包围的 0 条或多条语句序列,在语法上,相当于一条语句。
新版 C# 可以使用字符串插值,类似 JavaScript 中的字符串插值:
var a = 10; var b = 20; var str = $"a + b= {a + b}"; |
---|
C# 允许三种注释:
如果要描述程序代码特征的话,我们可以说 C 程序就是一组函数和数据类型,C++ 程序就是一组函数和类,而 C# 则是一组类型声明。
namespace MyProgram { DeclarationOfTypeA DeclarationOfTypeB class C { static void Main() { } } } |
---|
我们学习 C#,其实就是学习如何创建和使用类型,所以我们需要了解什么是类型。 我们可以把类型想象成创建数据结构的模板,模板本身不是数据结构,但可以描述由改模板构造的对象特征。 类型由下面元素定义:
比如,int 类型:
从模板创建实际对象的过程,就称为实例化该类型。
像 short,long 等这样的类型称为简单类型,只能存储一个数据项。
其他的类型可以存储多个数据项,如数组类型就可以存储多个相同类型的数据项。这些数据项称为数组元素,通过索引来获取每个数组元素。C# 数组这一特征与 Objective-C 相同,与 JavaScript 的特征不同。
然而,另外一些类型可以包含不同类型的数据项,这些类型中的数据项个体称为 成员。 有两种成员:
C# 提供了 16 种预定义类型,包括 13 种简单类型和 3 种非简单类型。 所有预定义类型由全小写字母组成,预定义的简单类型包括以下 3 种:
与 Objective-C 或 JavaScript 不同,C# 中的数值类型不具有布尔含义。
3 种非简单类型:
注意: 在 C# 程序中,应使用小写的 C# 类型名称而不是大写的 .Net 类型名称。
有 6 种类型可以由用户自己创建:
类型通过类型声明创建,类型声明包含以下信息:
一旦声明了类型,就可以像预定义类型一样使用了。
预定义类型已经由系统创建好了,我们直接使用即可,而用户定义类型,我们使用前需要先进行声明,再使用。
对于非成员数据的存储(如函数中的局部变量):
对于成员数据,存储有些不同:
C# 提供了 4 中变量:
变量在使用前必须声明。变量声明完成了两件事:
我们还可以直接在声明时初始化变量。 一些类型的变量如果在声明时没有初始化,那么会被自动设置为默认值。 注意: 本地变量和参数不会被自动初始化,类字段,结构字段和数组元素会被自动初始化。