当前位置:网站首页>C#基础篇——Hello Wrold

C#基础篇——Hello Wrold

2021-01-24 10:13:28 NewIDream

前言

提醒:为了能够将知识点学得更加透彻、记得更加牢固 我会通过教学讲解的方式把知识写下来 因为在过程中会让人从学生变成老师 这个过程会挖掘出新的知识和观点 是一个自我思维切换而达成的知识深度挖掘和提升的过程 如果能帮助到大家那就最好 如果有讲错的地方还请多多指教!我只是一只菜鸡 感谢理解!


1、Hello World程序

在学习编程语言之前我要提醒大家一下 学习编程语言最忌讳的一点就是 只看不写

看的时候 大脑:嗯太简单了 我会了! 手:不 你不会 ! 等写的时候就发现 都是些什么玩意

所以我们一定要动起手来写 废话不多说 我们打开vistudio studio编译器 也可以不是VS用你们顺手的就行 新建一个控制台应用项目

我们先从一段简单的代码学起

Engelbart

先来看看执行结果

Engelbart

输出了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 这样程序就会报错

Engelbart

因为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();
         }
     }
}

可以看到编译器报错了!

Engelbart

提示当前上下文中不存在Console 我们再把System引用回去

​
using System;
​
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }
}

Engelbart 编译又正常了

我们再来深入理解下刚刚那句话我们之所以能够调用Console.WriteLine(); 这个方法(也可以叫它函数)就是因为我们引用了System这个命名空间,因为Console.WriteLine()这个方法就是在using System命名空间下的

鼠标点击Console 按下F12 或者右键转到定义 我们来看看

Engelbart

可以观察到System的命名空间下定义了一个Console类

然后我们往下拉 或者 回到我们的程序鼠标点击WriteLine 然后再F12

Engelbart

是不是看到了WriteLine() 这个函数

所以现在懂了吧 Console.WriteLine()在System命名空间下的Console类中 如果我们不引用System命名空间 自然就调用不了它 就好比现实生活中的 你需要去你朋友家里借他的PS4玩 你不知道他家在哪里 那你怎么找他借呢

版权声明
本文为[NewIDream]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000039072711

随机推荐