Skip to main content

任务二 Visual Studio开发环境

一、Visual Studio是什么

简单来说,Visual Studio 是微软开发的一款功能强大的集成开发环境(IDE),简称“VS”。

VS是在Windows操作系统上编写C#程序的不二选择,号称“宇宙最强IDE”。它主要用于编写、调试、测试和部署软件。

您可以把它想象成一个 “程序员的工作台” 或 “软件开发的全功能工厂”。它不仅仅是一个简单的文本编辑器(如记事本),而是一个将编写代码所需的所有工具都集成在一起的超级软件。

二、IDE是什么

要理解 Visual Studio,首先要明白 IDE 的含义。

IDE的全称是“Integrated Development Environment ”,翻译为“集成开发环境”。简单说IDE不但是一个代码编辑器,它还自带编译环境。

IDE = 代码编辑器 + 编译环境

一个IDE通常包含:

  • 代码编辑器:用于编写代码,并提供语法高亮、自动补全(IntelliSense)等功能。

  • 编译器:将您写的源代码转换成计算机可以执行的程序。

  • 调试器:允许您逐步运行代码,查找和修复错误(bugs)。

  • 图形用户界面(GUI)设计器:通过拖拽控件(如按钮、文本框)来直观地设计应用程序界面。

  • 版本控制集成:方便地与 Git 等版本控制系统协作。

  • 项目管理工具:组织项目中的众多文件。

  • 扩展生态系统:允许安装更多工具来增强功能。

三、编译是什么

“编译”是指将人类用英语编写的代码(如 C#、Java、C++)翻译成计算机能理解的机器语言(0和1)的过程。

这个过程由一个专门的程序——编译器(compiler)来完成。

四、Visual Studio支持的开发语言是什么

  • C#

  • F#

  • VB.NET

  • C++

五、Visual Studio支持开发应用程序的类型是什么

  • 桌面软件

  • 游戏

  • 网站

  • 云服务

  • API

  • 手机App

六、Visual Studio支持的数据库是什么

  • Microsoft SQL Server

  • IBM DB2

  • Oracle

七、Visual Studio的主要版本是什么

Visual Studio 主要提供三个面向不同用户群体的版本:

| 用户类型 | 推荐版本 |

| :--- | :--- |

| 学生、编程爱好者、个人开发者 | 社区版 Visual Studio Community(免费且功能强大) |

| 专业开发者、小型商业团队 | 专业版 Visual Studio Professional(提供高级生产力工具) |

| 中大型企业团队 | 企业版 Visual Studio Enterprise(提供最顶级的测试和架构工具) |

对于初学者,直接从 Visual Studio Community 版 开始是最佳选择。

八、Visual Studio是如何管理应用开发的

Visual Studio为了有效的管理各类应用程序的开发,提供了两种容器:

  • 解决方案(Solution)

  • 项目(Project)

九、解决方案是什么

  • 解决方案是一个应用程序。

  • 解决方案是一类相关项目的集合。

  • 一个解决方案可以包含多个项目。

  • 每个解决方案会生成一个文件夹,用于管理项目。

  • 解决方案就是一个应用程序。

  • 一个解决方案通常包含多个项目。

  • 解决方式就是一个相关项目的集合

  • 解决方式就是一个应用程序,应用程序由多个模块组成,每个一个模块是一个项目。

  • 在VS中创建解决方案时,VS会自动生成解决方案的文件夹。

命名空间是什么

  • 命名命名是一种组成和管理代码的机制。用于解决名字冲突的问题
  • 命名空间就是一个拥有名字的独立空间。
  • 命名空间是存放类的容器

using的用途是什么

  • using用于引入命名空间。

命名空间中可以存放哪些代码?

  • 命名空间是存放类的容器。

Program类是什么

  • Program类是由系统自动生成的一个特殊的项目入口类。

类可以存放哪些成员?

  • 字段
  • 属性
  • 方法
  • 构造函数

十、项目是什么

  • 项目是一个功能模块。

  • 项目是构成应用程序的代码单元。

十一、解决方案资源管理器的用途是什么

解决方案资源管理器用于管理解决方案、项目及关联项。

十二、.NET中常见的文件类型是什么

  • .sln:解决方案文件。打.sln文件可以快速打开整个项目。(重要)

  • .csproj: 项目文件。包含创建应用程序所需的各种信息。(重要)

  • .cs:C#源代码文件(重要)

  • .resx: 资源文件

  • .aspx: web窗体文件

  • .asmx: xml web服务文件

  • .config: 配置文件

  • .suo: 解决方案用户选项文件

十三、Visual Studio的界面组成

Visual Studio的工作界面由以下8个部分组成:

  • 标题栏

  • 菜单栏

  • 工具栏

  • 工具箱

  • 属性窗口

  • 解决方案资源管理器

  • 窗体设计器窗口

  • 代码设计器窗口

如何创建控制台应用项目(多个)?

解决方案是什么

项目是什么

  • 项目是构建应用程序的功能模块(单元)。

解决方案中包含的常见文件类型

  • .sln:解决方案文件(快速打开整个项目)
  • sln: solution 中文:解决
  • .cs: C#源文件、窗体文件等( Program.cs)
  • .csproj: C Sharp Project 翻译为:C#项目文件(配置)

VS的界面由哪几部分组成?

  • 由以下8个部分组成

C#中可以创建哪些类型的项目

  • 控制台应用程序
  • Windows窗体应用程序
  • Web应用

C#中的项目类型主要有什么

命名空间(namespace)是什么

如何导入命名空间

Console类的用途是什么

类是什么

  • "类"是面向对象编程的基本单元。
  • 类名通常与文件名一致(Program.cs)。

声明类的关键字是什么

class是声明类的关键字。

Program是什么

Program是系统自动生成的类,是程序执行的入口类,花括号表Program类的代码块开始。

Main()方法是什么

Main()方法是程序的唯一入口,是程序启动时自动执行的方法。

使用Main()方法要注意什么

  • Main()方法必须声明在类或结构体的内部;
  • Main()方法必须是静态的;
  • Main()方法不应该public的;
  • Main()方法的返回值类型必须是void或int
  • Main()方法的参string[] args是可选的

关键字是什么

  • 关键字是C#语言中已经被赋予特定意义的单词。
  • 不可以把关键字作为命名空间、类、方法或属性来使用。

标识符是什么

标识符主要用来表示类名、变量名、方法名、属性名、数组名等成员。

标识符的命名规则是什么

  • 合法字符:字符数字下划线
  • 数字不能开头
  • 不能是关键字。

注释是什么

注释是不会被编译器执行的代码或文字。

注释的功能是对某行或某段代码进行说明或调试。

注释的两种写法是什么

  • 行注释:使//注释内容表示。用于注释单行代码;
  • 块注释:使/注释内容/表示。用于注释多行连续的代码段。

Console的输出方法的用法是什么

  1. Console.Write()

用途:输出内容,不换行


// 输出字符串

Console.Write("Hello"); // 输出:Hello

Console.Write("World"); // 输出:HelloWorld

// 输出变量

string name = "张三";

int age = 25;

Console.Write("姓名:" + name);

Console.Write(",年龄:" + age);

// 使用字符串插值(C# 6.0+)

Console.Write($"姓名:{name},年龄:{age}");

// 格式化输出

Console.Write("姓名:{0},年龄:{1}", name, age);

  1. Console.WriteLine()

用途:输出内容并换行


// 输出字符串并换行

Console.WriteLine("Hello World"); // 输出后换行

// 输出变量

Console.WriteLine($"姓名:{name}"); // 输出后换行

Console.WriteLine($"年龄:{age}"); // 输出后换行

// 空行

Console.WriteLine(); // 只输出换行

// 格式化输出

Console.WriteLine("姓名:{0},年龄:{1}", name, age);

  1. Console输出示例组合

string product = "笔记本电脑";

double price = 5999.99;

int quantity = 3;

Console.WriteLine("=== 购物清单 ===");

Console.Write("商品:");

Console.WriteLine(product);

Console.Write("单价:");

Console.WriteLine($"¥{price:F2}");

Console.Write("数量:");

Console.WriteLine(quantity);

Console.Write("总价:");

Console.WriteLine($"¥{price * quantity:F2}");

Console.WriteLine("================");

4.格式化输出


// 数字格式化

double number = 1234.5678;

Console.WriteLine("默认:{0}", number); // 1234.5678

Console.WriteLine("货币:{0:C2}", number); // ¥1,234.57

Console.WriteLine("小数:{0:F2}", number); // 1234.57

Console.WriteLine("整数:{0:D6}", 123); // 000123

Console.WriteLine("科学计数:{0:E2}", number); // 1.23E+003

Console.WriteLine("百分比:{0:P1}", 0.456); // 45.6%

// 日期时间格式化

DateTime now = DateTime.Now;

Console.WriteLine("短日期:{0:d}", now); // 2023/12/15

Console.WriteLine("长日期:{0:D}", now); // 2023年12月15日

Console.WriteLine("时间:{0:T}", now); // 14:30:25

Console.WriteLine("完整:{0:F}", now); // 2023年12月15日 14:30:25

  1. 颜色输出

// 设置前景色(文字颜色)

Console.ForegroundColor = ConsoleColor.Red;

Console.WriteLine("错误信息!");

Console.ForegroundColor = ConsoleColor.Green;

Console.WriteLine("成功信息!");

Console.ForegroundColor = ConsoleColor.Yellow;

Console.WriteLine("警告信息!");

// 重置颜色

Console.ResetColor();

// 设置背景色

Console.BackgroundColor = ConsoleColor.Blue;

Console.ForegroundColor = ConsoleColor.White;

Console.WriteLine("特殊背景的文字");

Console.ResetColor();

  1. 高级输出技巧

// 对齐输出

string[] names = { "张三", "李四", "王五" };

int[] ages = { 25, 30, 28 };

Console.WriteLine("{0,-10} {1,5}", "姓名", "年龄");

Console.WriteLine(new string('-', 16));

for (int i = 0; i < names.Length; i++)

{

Console.WriteLine("{0,-10} {1,5}", names[i], ages[i]);

}

// 输出结果:

// 姓名 年龄

// -----------------

// 张三 25

// 李四 30

// 王五 28

  1. 控制台窗口操作

// 设置控制台标题

Console.Title = "我的控制台应用程序";

// 设置窗口大小

Console.SetWindowSize(80, 30);

// 设置缓冲区大小(可滚动区域)

Console.SetBufferSize(80, 100);

// 清屏

Console.Clear(); // 清除控制台所有内容

// 设置光标位置

Console.SetCursorPosition(10, 5); // 第10列,第5行

Console.Write("指定位置输出");

// 获取光标位置

int cursorLeft = Console.CursorLeft;

int cursorTop = Console.CursorTop;

  1. 进度条示例

static void ShowProgressBar(int progress, int total)

{

Console.CursorVisible = false;

int barWidth = 50;



// 回到行首

Console.SetCursorPosition(0, Console.CursorTop);



// 绘制进度条

int progressWidth = (int)((double)progress / total * barWidth);

string bar = new string('█', progressWidth) + new string('░', barWidth - progressWidth);



Console.Write($"[{bar}] {progress}/{total} ({(double)progress/total:P0})");

}

// 使用示例

for (int i = 0; i <= 100; i++)

{

ShowProgressBar(i, 100);

Thread.Sleep(50);

}

Console.WriteLine(); // 换行

Console.CursorVisible = true;

  1. 输出编码处理(中文支持)

// 确保中文正常显示

Console.OutputEncoding = System.Text.Encoding.UTF8;

// 或者使用系统默认编码

Console.OutputEncoding = System.Text.Encoding.Default;

Console.WriteLine("中文测试:你好世界!");

Console的输入方法的用法是什么

  1. Console.ReadLine()

用途:读取整行输入,返回字符串。


// 基本用法

Console.Write("请输入您的姓名:");

string name = Console.ReadLine();

Console.WriteLine($"您好,{name}!");

// 读取数字并转换

Console.Write("请输入年龄:");

string ageInput = Console.ReadLine();

int age = int.Parse(ageInput); // 或使用 int.TryParse() 更安全

// 读取多个值

Console.Write("请输入城市:");

string city = Console.ReadLine();

  1. Console.Read()

用途:读取单个字符,返回ASCII整数值。(Read()只读取一个字符,但会留下换行符在缓冲区)


Console.Write("请输入一个字符:");

int charValue = Console.Read(); // 返回ASCII码

char character = (char)charValue; // 转换为字符

Console.WriteLine($"您输入的字符是:{character},ASCII码:{charValue}");

  1. Console.ReadKey()

读取单个按键,返回ConsoleKeyInfo对象.


// 基本用法

Console.Write("请按任意键继续...");

ConsoleKeyInfo keyInfo = Console.ReadKey();

Console.WriteLine($"\n您按下了:{keyInfo.Key} 键");

// 不显示按下的键

Console.Write("请输入密码(不显示):");

ConsoleKeyInfo key;

string password = "";

do {

key = Console.ReadKey(true); // true表示不显示按键

if (key.Key != ConsoleKey.Enter) {

password += key.KeyChar;

Console.Write("*"); // 显示星号代替实际字符

}

} while (key.Key != ConsoleKey.Enter);

  1. 安全的数据类型转换

// 安全的数字输入处理

static int GetIntegerInput(string prompt)

{

int result;

while (true)

{

Console.Write(prompt);

string input = Console.ReadLine();

if (int.TryParse(input, out result))

{

return result;

}

Console.WriteLine("输入无效,请输入数字!");

}

}

// 使用示例

int number = GetIntegerInput("请输入一个数字:");

  1. 读取多个值示例

Console.WriteLine("请输入个人信息:");

Console.Write("姓名:");

string name = Console.ReadLine();

Console.Write("年龄:");

int age = int.Parse(Console.ReadLine());

Console.Write("职业:");

string job = Console.ReadLine();

Console.WriteLine($"\n个人信息:\n姓名:{name}\n年龄:{age}\n职业:{job}");

  1. 处理特殊输入场景

// 读取Yes/No选择

static bool GetYesNoInput(string prompt)

{

while (true)

{

Console.Write($"{prompt} (y/n): ");

ConsoleKeyInfo key = Console.ReadKey();

Console.WriteLine();



if (key.Key == ConsoleKey.Y)

return true;

if (key.Key == ConsoleKey.N)

return false;



Console.WriteLine("请输入 y 或 n");

}

}

// 使用示例

bool continueProgram = GetYesNoInput("是否继续?");

常用的格式字符是什么

格式符名称描述示例代码输出结果
{0}占位符基本的参数占位符Console.WriteLine("{0} {1}", "Hello", "World");Hello World
{0:C}货币格式显示为货币格式Console.WriteLine("{0:C}", 1234.56);¥1,234.56
{0:C0}货币格式(无小数)货币格式,无小数位Console.WriteLine("{0:C0}", 1234.56);¥1,235
{0:D}十进制整数整数格式显示Console.WriteLine("{0:D}", 123);123
{0:D6}十进制整数(补零)整数格式,指定位数Console.WriteLine("{0:D6}", 123);000123
{0:E}科学计数法科学计数法格式Console.WriteLine("{0:E}", 1234.56);1.234560E+003
{0:E2}科学计数法(指定位数)科学计数法,指定小数位Console.WriteLine("{0:E2}", 1234.56);1.23E+003
{0:F}浮点数浮点数格式Console.WriteLine("{0:F}", 1234.56);1234.56
{0:F2}浮点数(指定位数)浮点数,指定小数位Console.WriteLine("{0:F2}", 1234.5);1234.50
{0:F0}浮点数(无小数)浮点数,无小数位Console.WriteLine("{0:F0}", 1234.56);1235
{0:G}通用格式最紧凑的格式Console.WriteLine("{0:G}", 1234.56);1234.56
{0:N}数字格式带千位分隔符Console.WriteLine("{0:N}", 1234567.89);1,234,567.89
{0:N0}数字格式(无小数)带千位分隔符,无小数Console.WriteLine("{0:N0}", 1234567.89);1,234,568
{0:P}百分比格式百分比格式Console.WriteLine("{0:P}", 0.456);45.60%
{0:P1}百分比格式(指定位数)百分比,指定小数位Console.WriteLine("{0:P1}", 0.456);45.6%
{0:X}十六进制十六进制格式(大写)Console.WriteLine("{0:X}", 255);FF
{0:x}十六进制十六进制格式(小写)Console.WriteLine("{0:x}", 255);ff
{0:0000}数字补零数字补零到指定位数Console.WriteLine("{0:0000}", 123);0123
{0:####}数字格式自定义数字格式Console.WriteLine("{0:####}", 123);123
{0:0.00}小数格式固定小数位数Console.WriteLine("{0:0.00}", 123.4);123.40
{0:d}短日期短日期格式Console.WriteLine("{0:d}", DateTime.Now);2023/12/15
{0:D}长日期长日期格式Console.WriteLine("{0:D}", DateTime.Now);2023年12月15日
{0:t}短时间短时间格式Console.WriteLine("{0:t}", DateTime.Now);14:30
{0:T}长时间长时间格式Console.WriteLine("{0:T}", DateTime.Now);14:30:25
{0:yyyy-MM-dd}自定义日期自定义日期格式Console.WriteLine("{0:yyyy-MM-dd}", DateTime.Now);2023-12-15
{0:HH:mm:ss}自定义时间自定义时间格式Console.WriteLine("{0:HH:mm:ss}", DateTime.Now);14:30:25
{0,-10}左对齐指定宽度并左对齐Console.WriteLine("{0,-10}", "Hello");Hello
{0,10}右对齐指定宽度并右对齐Console.WriteLine("{0,10}", "Hello");Hello

使用示例


// 综合示例

double amount = 1234567.8912;

DateTime now = DateTime.Now;

int number = 42;

Console.WriteLine("货币格式: {0:C2}", amount); // ¥1,234,567.89

Console.WriteLine("数字格式: {0:N0}", amount); // 1,234,568

Console.WriteLine("百分比: {0:P1}", 0.456); // 45.6%

Console.WriteLine("日期: {0:yyyy-MM-dd}", now); // 2023-12-15

Console.WriteLine("十六进制: {0:X}", number); // 2A

Console.WriteLine("补零: {0:000000}", number); // 000042

Console.WriteLine("对齐: |{0,-10}|{1,10}|", "左", "右"); // |左 | 右|

自定义数字格式符

格式符描述示例输出
0数字占位符,不足补零{0:000.00}012.30
#数字占位符,不补零{0:###.##}12.3
.小数点{0:0.00}12.30
,千位分隔符{0:0,0}12,345
%百分比占位符{0:0%}1230%
;分段分隔符{0:正数;负数;零}根据值显示

这些格式符可以组合使用,提供灵活的格式化输出功能。

C#是否区分大小写?

区分大小写。

一、C#中的项目类型主要有什么

  • 控制台应用程序
  • Windows窗体应用程序
  • Web应用程序

命名空间(namespace)是什么

  • 命名空间是一个命名的独立空间。
  • 命名空间是一种组织代码单元的机制,避免命名冲突。
  • 命名空间遵循帕斯卡命名法命名。

如何导入命名空间

使用using语句可导入命名空间


using 命名空间; //using是小写

Console类的用途是什么

  • Console 即控制台的意思。
  • Console类是System命名空间下的一个内建类。
  • Console类用于控制台交互,即向控制台输出数据或从控制台读取数据。

简答

  • Visual Studio是什么
  • IDE是什么
  • 编译是什么
  • Visual Studio支持的开发语言是什么
  • Visual Studio支持开发应用程序的类型是什么
  • Visual Studio支持的数据库是什么
  • Visual Studio的版本有几个
  • Visual Studio是如何管理应用开发的
  • 解决方案是什么
  • 项目是什么
  • 解决方案资源管理器的用途是什么
  • .NET中常见的文件类型是什么
  • Visual Studio的界面组成是什么

练习

[实操] 写一个控制台应用程序"Hello World"

[实操] 写一个Windows窗体程序“Hello World”

[实操] 写一个Web应用程序“Hello World”