- 程序启动时:从命令行向你的应用程序(通常是控制台应用)传递参数。
- 函数/方法调用时:在代码中调用一个函数,向它传递数据。
下面我将详细讲解这两种情况,并提供图文并茂的步骤说明。

为控制台应用程序设置启动参数
这是最常见的需求,当你想用不同的配置或数据多次运行同一个程序时,这个功能非常有用。
假设我们有一个简单的控制台程序 MyConsoleApp,它的功能是打印出所有传入的启动参数。
C# 代码示例 (Program.cs)
using System;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args) // args 就是存放参数的数组
{
Console.WriteLine("程序启动,共接收到 {0} 个参数。", args.Length);
// 检查是否有参数传入
if (args.Length == 0)
{
Console.WriteLine("没有启动参数。");
}
else
{
Console.WriteLine("所有参数如下:");
// 遍历并打印每个参数
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine($"参数 [{i}]: {args[i]}");
}
}
}
}
}
如何设置和运行?
有三种主要方法:

使用 Visual Studio 的“项目属性”设置(最常用)
这是最直接、最方便的方法,适合在开发调试时使用。
-
打开解决方案资源管理器:在 Visual Studio 右侧,找到你的项目。
-
打开项目属性:右键点击你的项目(
MyConsoleApp),选择 “属性”。 -
导航到“调试”选项卡:在弹出的属性窗口中,选择左侧的 “调试” 选项卡。
(图片来源网络,侵删) -
在“启动选项”中输入参数:
- 找到名为 “启动选项” 的区域。
- 在 “命令行参数” 文本框中,输入你想要传递的参数。
- 多个参数之间用空格隔开,如果你的参数本身包含空格,需要用双引号 将它括起来。
示例: 假设我们想传入三个参数:
"Hello World",--file,"C:\data\test.txt"。 你应该在文本框中输入:"Hello World" --file "C:\data\test.txt" -
运行程序:
- 按
F5或点击工具栏的 “启动” 按钮(绿色三角形)。 - 程序会在控制台窗口中输出你设置的参数内容。
输出结果:
程序启动,共接收到 3 个参数。 所有参数如下: 参数 [0]: Hello World 参数 [1]: --file 参数 [2]: C:\data\test.txt - 按
直接在 Visual Studio 的“调试”窗口中输入
这个方法适合临时性的、一次性的参数测试。
- 在 Visual Studio 中,点击顶部菜单栏的 “调试” -> “启动但不调试” (或者直接按
Ctrl + F5)。 - 程序会启动,并弹出一个黑色的控制台窗口,同时会暂停在
Console.ReadKey()或类似的地方(如果有的话)。 - 在 Visual Studio 的 “即时窗口” (Immediate Window) 或 “输出” 窗口中,通常没有直接输入命令行参数的地方,所以这种方法不常用,更推荐使用方法一或方法三。
使用 dotnet run 命令(适合 .NET Core / .NET 5+)
如果你使用的是命令行或终端,或者喜欢通过命令行操作,这是最佳方式。
-
打开项目所在的文件夹:在文件资源管理器中,导航到你的
.csproj文件所在的目录。 -
打开命令提示符或 PowerShell:在该目录下打开终端。
-
运行命令: 使用
dotnet run命令,并在后面加上 和你的参数。 用于告诉dotnet命令,后面的内容是传递给应用程序的参数,而不是dotnet命令本身的参数。示例:
dotnet run -- "Hello World" --file "C:\data\test.txt"
-
查看输出:你会在终端中看到与方法一完全相同的输出结果。
在代码中为函数/方法传递参数
这是编程的基础,指的是在调用一个方法时,向它提供具体的值(实参 Actual Arguments)。
示例
我们有一个计算矩形面积的方法,它需要两个输入参数:width 和 height。
C# 代码示例
using System;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
// 调用 CalculateArea 方法,并传入两个整数作为参数
int area1 = CalculateArea(10, 5);
Console.WriteLine("宽为 10,高为 5 的矩形面积是: " + area1);
// 可以使用变量作为参数
int width = 20;
int height = 15;
int area2 = CalculateArea(width, height);
Console.WriteLine($"宽为 {width},高为 {height} 的矩形面积是: {area2}");
}
/// <summary>
/// 计算矩形面积
/// </summary>
/// <param name="width">矩形的宽度</param>
/// <param name="height">矩形的高度</param>
/// <returns>矩形的面积</returns>
static int CalculateArea(int width, int height) // 这里的 width 和 height 是形参
{
return width * height;
}
}
}
输出结果:
宽为 10,高为 5 的矩形面积是: 50
宽为 20,高为 15 的矩形面积是: 300
关键点:
- 形参:方法定义中括号里的变量,如
CalculateArea(int width, int height)中的width和height,它们是占位符。 - 实参:调用方法时实际传递的值,如
CalculateArea(10, 5)中的10和5,它们可以是具体的值、变量,甚至是另一个方法调用的返回值。 - 参数匹配:调用时,实参的数量、类型和顺序必须与方法定义中的形参相匹配。
| 场景 | 目的 | 设置/操作方法 | 适用情况 |
|---|---|---|---|
| 启动参数 | 在程序启动时从外部向主程序 (Main 方法) 传递数据 |
项目属性 -> 调试 -> 命令行参数 (最常用)dotnet run -- <args> (命令行)直接在命令行运行 .exe 文件 |
配置文件路径、启动模式、用户ID等需要在程序运行时确定的信息。 |
| 函数参数 | 在代码内部调用一个方法时,向它传递数据 | 在方法名后的括号内提供值或变量 | 几乎所有函数式编程,如计算、数据操作、事件处理等。 |
希望这个详细的解释能帮助你完全理解在 Visual Studio 中处理输入参数的各种方式!
