初学入门都是用控制台项目?
特点:输入和输出(界面)都是一个控制台(黑窗体),简单!
对比Web项目,输入和输出至少需要学习HTML
PS:控制台不一定是黑窗体,只要有一个简单界面就行。之前在浏览器中F12演示,也是用的控制台。
新建的控制台项目只有一个Program.cs,这是一个类(后文详述)
类里面有一个函数Main(),这个函数被称之为入口函数,即:代码跑起来之后首先运行这个函数。
所以,如果你的代码没有运行,检查一下是否被(直接/间接)被入口函数调用。
PS:如果一个项目没有入口函数,只有一个一个的类,这种项目又被称之为类库(class libary)项目
实事求是的说,控制台项目并不是一个“用户交互友好”的项目,它的输出输入非常简单:
所以它通常只用于:
VS用:
把鼠标放在错误的代码上面,还可以看到更具体的内容(现在看不懂没关系,但要努力的看,养成习惯慢慢来,^_^)
错误和警告还可以在Error List窗口中看到:
注意区分:
强调这个,是为了让大家理解:
又称之为“生成”,本质就是“编译”
在VS的工具栏上,还有这么一个选项:
这决定了VS如何编译你的项目:
build项目,快捷键Ctrl+Shift+B,或者在项目上右键点击:
VS会把控制台项目编译后文件放置在bin文件夹中,把调试用信息放置在obj文件夹中(复习:VS中查看隐藏文件)
演示:
有两种方式可以先让代码“跑”起来:(注意:设置起始项目)
F9:断点切换:快捷键
F10:执行下一条语句
F5:执行完剩下的全部代码,直到程序结束或下一个断点
F11:进入当前语句的内部调用代码
Ctrl+Shift+F9:取消所有断点。
VS中同样可以进行条件断点调试
有一些代码可能是仅在调试时才需要执行的,发布之后就不需要了(可能浪费性能等)……
能不能在每次发布之前注释掉这一行代码?可以,但是这不是最佳方案,因为:
所以,需要引入:
#if DEBUG //仅在调试状态使用 .EnableSensitiveDataLogging(true) #endif
这就告诉编译器:如果(#if)项目中定义了DEBUG,就编译(#if...#endif)之间的代码;否则,就直接略过。
DBUG是一个“预定义”的、特殊的常量,可以由VS中的编译选择器决定:
演示:选择Release代码块变灰
查看.csproj文件,可以看到:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <DefineConstants>DEBUG;TRACE;PUBLISH</DefineConstants> <PlatformTarget>x64</PlatformTarget> </PropertyGroup>
除了预定义的:DEBUG/TRACE,还可以自定义其他常量(constant),比如:FakeEmail。
条件编译符常量又有两个地方可以声明:
#define FakeEmail using System;
windows系统下一个可以定时自动启动某程序的小工具。
在我们Web开发中可能会用到,比如在服务器上每天定时清理/统计/发送email……这些任务一般可以由控制台程序完成。
演示:
多快好省!前端后端,线上线下,名师精讲
更多了解 加: