- A+
前言
提醒:为了能够将知识点学得更加透彻、记得更加牢固 我会通过教学讲解的方式把知识写下来 因为在过程中会让人从学生变成老师 这个过程会挖掘出新的知识和观点 是一个自我思维切换而达成的知识深度挖掘和提升的过程 如果能帮助到大家那就最好 如果有讲错的地方还请多多指教!我只是一只菜鸡 感谢理解!
1、Hello World程序
在学习编程语言之前我要提醒大家一下 学习编程语言最忌讳的一点就是 只看不写
看的时候
大脑:嗯太简单了 我会了!
手:不 你不会 !
等写的时候就发现 都是些什么玩意
所以我们一定要动起手来写 废话不多说 我们打开vistudio studio编译器 也可以不是VS用你们顺手的就行 新建一个控制台应用项目
我们先从一段简单的代码学起
先来看看执行结果
输出了Hello World!
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadKey(); } } }
我们来看看一个简单的C#程序结构
-
using System : 引用名称为System的命名空间
-
namespace ConsoleApp1 :声明ConsoleApp1命名空间 声明后我们就可以通过using来引用
-
class Program :声明一个Program类
-
Main :程序的入口点
-
Console.WriteLine() :将信息输出到屏幕(就是我们的控制台窗口)我们只所以在控制台窗口看到Hello World! 就是这句话的作用 我们可以自行修改看看效果 我们把要输出的语句改一下
Console.WriteLine("我只是一只Unity小菜鸡");
控制台窗口就能看到输出了一句 我只是一只Unity小菜鸡
- Console.ReadKey() :等待用户按下任意键 为了避免程序编译完后一闪而过 可以把这句话删掉看看有什么变化
- 仔细点看 我们可以发现在这段代码中所有的语句和表达式都要以;分号结尾
像这条语句 结尾的时候都会带一个;分号
Console.WriteLine("我只是一只Unity小菜鸡");
这是因为语言规定了 语句都需要加分号表示该语句结束了 所有写程序一定要养成用分号结尾这个习惯 不然程序会报错的
2、什么是标识符
标识符是使用在变量、类、方法、和其他各种用户定义对象的一般术语。
int index = 0;
index 就是一个标识符
简单的说 我们给变量或者用户自定义类型指定的名字就叫标识符
命名标识符是一门学问 它是需要我们去遵守一些规则的
例如:
- 必须以字母或者_开头
- 不能包含空格
- 可以包含大小写字母、数字、下划线或@字符
- 标识符必须区分大小写,大写字母和小写字母会被认定为不同的字母
- @字符只能放在标识符的第一位,带@前缀的标识符称为逐字标识符
- 标识符不能使用C#中的关键字,但是加上@的关键字可以成为合法的标识符 但是不建议这样做
- 不能与C#的类库名称相同
3、什么是关键字
我们在这个简单的程序中可以看到 using、 namespace、 class、 这些都是C#预定义的保留标识符 这些预保留的标识符对编译器有特殊的意义 我们不能用它作为我们程序的标识符来使用(标识符不能和关键字重复 除非加上@)
例如我们定义一个int 变量 变量名为using 这样程序就会报错
因为using是已经预定义的保留的标识符其作用是帮助我们引用其他命名空间(引用命名空间有什么等等会讲) 所以我们不能拿他作为我们自己变量的标识符使用
int @using = 1;
带上@就可以
C#提供的关键字挺多的 初学的时候了解下就好了 不需要都记住 因为很多关键字后面都会频繁的使用 久而久之就都能记住了 这里附上C#官方提供的C#关键字文档 遇到不会的查就完事了
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/
4、为什么要引用命名空间
这里我们再来了解下引用命名空间这个概念
我们之所以能够调用Console.WriteLine(); 这个方法(也可以叫它函数)就是因为我们引用了System这个命名空间,因为Console.WriteLine()这个方法就是在using System命名空间下的,如果我们不引用System这个命名空间 我们看看会发生什么
我们把using System这句话给去掉
namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadKey(); } } }
可以看到编译器报错了!
提示当前上下文中不存在Console 我们再把System引用回去
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadKey(); } } }
编译又正常了
我们再来深入理解下刚刚那句话我们之所以能够调用Console.WriteLine(); 这个方法(也可以叫它函数)就是因为我们引用了System这个命名空间,因为Console.WriteLine()这个方法就是在using System命名空间下的
鼠标点击Console 按下F12 或者右键转到定义 我们来看看
可以观察到System的命名空间下定义了一个Console类
然后我们往下拉 或者 回到我们的程序鼠标点击WriteLine 然后再F12
是不是看到了WriteLine() 这个函数
所以现在懂了吧 Console.WriteLine()在System命名空间下的Console类中 如果我们不引用System命名空间 自然就调用不了它 就好比现实生活中的 你需要去你朋友家里借他的PS4玩 你不知道他家在哪里 那你怎么找他借呢