怎么说呢,正如前文所述,有个写一大堆代码的,我想你也应该想知道这些是什么玩意吧,以下便是其内容。

结构

首先,我们先去把之前的HelloWorld拿上:

举个例子

using System; //命名空间,类似于import

class Program //类,类似于java里的class类
{
    static void Main(string[] args) //函数,用Main运行
    {
        Console.WriteLine("Hello, World!"); //里面的语句
    }
}

看懂没,没看懂看我折叠的部分:

给那些看不懂的

Using 就是命名空间,这里就相当于import(这里的using System其实可以不用导,但为了演示就写上了)。

class 就是,类是什么我不多说(自己查去)。

void 就是函数,主函数是Main,Main就是用来输出的,其他就是方法的嵌套函数(经典的面向对象)。

函数里的就是语句了,这里的语句跟java一样,是需要;结尾的

按理来说,C#就是这样的,最起码老版本都是这样的。

但是为啥我之前可以写一行呢,这里我就引入微软官方文档了(原链接:概述 - A tour of C# | Microsoft Learn):

从 C# 14 和 .NET 10 开始,可以创建 基于文件的应用,从而简化 C# 程序的生成和运行。 使用 dotnet run 命令运行包含在单个 *.cs 文件中的程序。 例如,如果以下代码存储在名为 hello-world.cs 的文件中,可以通过键入 dotnet run hello-world.cs 来运行它。

至此,结构方面我讲完了,接下来就是变量,虽然除了js、Kotlin那些用的var万能变量其他基本上都大差不差,不可能有人的第一门计算机语言是js那些吧

那这里就有人要说了,python的变量种类不也少的可怜吗?拜托,py的变量类型还是有很多种的,你真以为py的整型就只有int(此int还是自带高精,写cpp的哭死)、布尔就只有bool那些真以为py的变量种类很少吧。

js那个甚至就一个var走遍天下你怎么解释呢。剩下不详细解释了,不然容易脱离其本质。

当然,根据上面的话,我其实没必要认真学/解释,但由于某些变量类型的不同(在细节方面),我还是得要简单记忆/学习/记录/解释下。

变量

定义

变量,顾名思义,就是存储数据的玩意。算了,懒的详细解释了,直接引用了(原链接:变量(计算机名词)_百度百科

变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。

变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变的。

在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

应该没人发现我前面讲的内容有点小问题吧,算了,反正懒的对着书解释了

好了,接下来我就不写变量命名规范了(这是基础,我没义务写这货,我不是纯教人,我也得要写给我自己的),我直接把变量具体类型端上来力(喜)

内置类型(C#)

这里就是内置类型(为与之后讲的类型做区别,这里写内置类型了),内置类型分很多种,我就一个一个记/讲了。

值类型

值类型就是直接分配的值,剩下不解释,自己看去(重点记标粗放大的就行):

类型

描述

范围

默认值

bool

布尔值

True 或 False

False

byte

8 位无符号整数

0 到 255

0

char

16 位 Unicode 字符

U +0000 到 U +ffff

'\0'

decimal

128 位精确的十进制值,28-29 有效位数

(-7.9 x 1028 到 7.9 x 1028) / 100 到 28

0.0M

double

64 位双精度浮点型

(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308

0.0D

float

32 位单精度浮点型

-3.4 x 1038 到 + 3.4 x 1038

0.0F

int

32 位有符号整数类型

2,147,483,648 到 2,147,483,647

0

long

64 位有符号整数类型

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

0L

short

16 位有符号整数类型

-32,768 到 32,767

0

uint

32 位无符号整数类型

0 到 4,294,967,295

0

ulong

64 位无符号整数类型

0 到 18,446,744,073,709,551,615

0

ushort

16 位无符号整数类型

0 到 65,535

0

引用类型

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。主要分三个(内置的):

对象(Object)类型

Object类型就是C#的终极类型(不过这个出来也代表你就要遇到头疼的玩意了),不具体解释,因为目前用不上

动态(Dynamic)类型

类似var类型,但我不喜欢用,原因跟我不喜欢js的变量一样,万能变量会降低可读性。

字符串(String)类型

字符串就是存储我们打出来的内容的,具体不解释

指针类型

怎么还有啊(恼)

这边懒的解释,我就不写了,你知道是这格式就行:type* identifier;

类型转化

本来要记录好可以放松的,都忘记有这茬了,临时写上(

我这里我就不用那啥乱七八糟的解释了,我直接代码例子献上,以便于理解:

using System;
class Program
{
    static void Main(string[] args)
    {
        int a = 10;
        double a_0= 20.5;
        double b = (double)a; //显式
        float c = a; //隐式
        int d = Convert.ToInt32(b); //使用Convert类进行转换
        int d_0= (int)a_0; //强制类型转换,截断小数部分
        String e = d.ToString(); //转换为字符串
        String f = b.ToString("F2"); //格式化为字符串,保留两位小数
        int g = int.Parse(e); //从字符串解析为整数
        Console.WriteLine($"a: {a}, a_0: {a_0}, b: {b}, c: {c}, d: {d}, d_0: {d_0}, e: {e}, f: {f}, g: {g}");
    }
}

以防有人说怎么没有结果,这里献上结果:

顺带,补充一点,如果变量里加const的话,就不能变了,变了会报错

我代码注释里讲的很明白了,我就不具体解释了主要懒

这个是屑