0%

【Bot Framework完全攻略】2-2.模具(C#项目结构)

在着手准备打造天气娘之前我先讲一讲C#的项目结构。即使你学过编程(C/C++),你要知道C#只是名字和语言风格和他们有些相像而已。我不会费太多话讲他们的区别,我就挑一些关键的,你必须知道的东西。

首先,打开VS,新建一个C#控制台项目。看看你的解决方案管理器里面都有什么。

不出意外,在默认的解决方案下有一个同名的项目。项目包含依赖项和一个Program.cs

img

其中Program.cs是输出Helloworld的代码。上面的依赖项是做什么的呢?展开!

img

好多好多东西。。。你如果只学过C/C++很基础的一部分,根据你的编程经验可能不是很懂。我们对比一下C++/C#的Helloworld程序代码。你只需要关注最上面的两行(1~2行)

C#

img

C++

img

这两段程序的using那行都是用来声明使用的namespace(命名空间)的。但是C++上面还有预处理指令#include C#的在哪里呢?

当然是在依赖项里啊(要不我费那么多话要干嘛。。)

我不在往下讲更多,讲的这些只是想让你注意一件事。

你想使用C#自带的库中的功能时,通常只需要加上像using System.xxx;这样的语句。那是因为.NET CORE这个库里面的东西实在是太多了,你在前面也看见了,就像C++里有一个变态的叫bits/stdc++.h的头文件一样。

但是,这个最基本的库并不具有整个计算机World所有的功能。For Example:

当你想使用C#去查询天气,你需要使用网络请求。这时候你去百度,找到一段代码,贴进来发现有些类是未定义的。比如说有个类叫HttpClient,根据往常的经验,这时候你去msdn或者其他的地方查到了这个类属于System.Net.Http命名空间,然后你在你程序的开头加入了一行using语句,发现提示你这个命名空间是不存在的。

这时候你要注意了,你犯的错误就像在C++中using namespace std 但是却没有#include一样

不用我说你可能也知道了,到依赖项/引用(在引用过一些其他的包后这个名字就变成了引用)那里,右键点击引用>添加引用:

img

在弹出的包管理器中>程序集>框架 中,找到System.Net.Http并且勾选:

img

确认之后发现问题就解决了。

总结:这篇教程并没有带你做一些实际的东西,只是为了让你了解一下C#项目与C++或者其他语言不一样的地方,便于以后处理一些小问题。