CodeGym /课程 /C# SELF /深入C#项目

深入C#项目

C# SELF
第 5 级 , 课程 4
可用

1. C#项目的整体结构

你的程序可不只是一个文件,而是一堆文件、文件夹和配置。C#是强类型语言,大型应用必须井井有条。如果你不管项目结构,代码很快就会变成电子迷宫,连自己的"Hello, World!"输出都找不到。

而且,理解项目结构这个技能,面试官会很看重。就像你知道家里钥匙和遥控器在哪,生活会轻松很多!

打个比方,C#项目就像一个有格子的盒子:

MyFirstConsoleApp/
├── MyFirstConsoleApp.csproj
├── Program.cs
├── Properties/
│    └── launchSettings.json
├── bin/
│    └── ...(编译好的程序放这里)
├── obj/
│    └── ...(编译中间文件放这里)

结构细节:

名字 用途
MyFirstConsoleApp.csproj
项目文件:你整个程序的“身份证”,所有项目设置都写在这。
Program.cs
主文件,入口点(Main)。通常你的第一行代码就写这。
Properties/
项目配置文件夹,比如IDE的启动方式啥的。
bin/
“成品篮子”——编译好的可执行文件就放这。
obj/
编译用的内部临时文件(就像写小说的草稿,基本不会去翻)。

2. 项目文件(.csproj

.csproj扩展名的文件就是项目的心脏和大脑。所有全局配置都在这:语言版本、依赖、要编译哪些文件、装了哪些包等等。切到Solution Explorer里的Files标签看看。

控制台应用的项目文件例子:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net9.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

</Project>
  • <TargetFramework>net9.0</TargetFramework> ——说明项目用.NET 9。
  • <OutputType>Exe</OutputType> ——会生成可执行文件(Windows下是.exe)。
  • <PropertyGroup>块里放主要参数。
  • 你可以在这个文件里加NuGet包、改编译设置、开关功能啥的。

3. 主程序文件:Program.cs

要是把项目比作剧院,Program.cs就是舞台,其他文件都是后台。这里有应用的“入口点”——Main方法。


// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("你好,世界!");
        }
    }
}
Program.cs最小例子
  • namespace ——命名空间,帮你分组类,避免名字冲突。
  • class Program ——主类,Main方法就在这。
  • static void Main(string[] args) ——必须的入口点,程序从这开始跑。
  • Console.WriteLine() ——你已经熟悉的输出方式。

升级我们的应用

还记得之前的课我们做过一个小程序,问用户名字然后打招呼。例子如下:


// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入你的名字: ");
            string name = Console.ReadLine();
            Console.WriteLine($"欢迎, {name}! 长命百岁,万事如意。");
        }
    }
}

运行项目:点一下绿色的▶️ Run按钮。

如果一切顺利,底下会出现Run标签。你会看到程序启动了,等你回答请输入你的名字:。直接在控制台输入名字(比如“Cat”)然后按Enter

按下Enter后,程序会处理你的输入并输出带你名字的最终消息。程序结束,结果就出来了。

4. 怎么写代码:基本规则

代码写哪?

一开始主要逻辑最好都写在Program.csMain方法里。等应用大了再加新文件和类,别急,最有趣的都在这。

Main里能干啥(不能干啥)?

  • 能:声明变量、写计算、调用方法、输入输出都行。
  • 不能:在方法或类外面写代码(比如直接写Console.WriteLine("Hello");Main外面——这样不行!)。

注释

给自己和别人写注释。单行注释用//,多行注释用/* ... */。以后回头看代码,越容易明白你写这段干嘛越好。

// 这是单行注释

/*
 这是——
 多行注释。
*/

5. 程序是怎么运行的?

你的程序总是从Main方法开始执行。Main前面的内容都不会管。想启动时做点啥?就写进Main

例子——简化流程图(代码→运行):

程序开始
     |
     v
Main方法
     |
     v
顺序执行Main里的指令
     |
     v
程序结束

6. 应用怎么扩展:加新文件

啥时候该建新文件?

当你的代码一屏放不下,变量也记不住时,就是拆分代码的时候了。

比如你做个计算器,可以新建Calculator.cs文件,把相关类放进去。

MyFirstConsoleApp/
├── Program.cs
├── Calculator.cs  // 新文件,放计算器逻辑

在Rider里怎么加新文件

  1. 在Solution Explorer树里右键项目→"Add"→"New File"(或"New Class")。
  2. 给文件起个有意义的名字。
  3. 在文件里写新类或函数。
// Calculator.cs
namespace MyFirstConsoleApp
{
    class Calculator
    {
        public static int Add(int a, int b)
        {
            return a + b;
        }
    }
}

然后在Program.cs里用它:

// Program.cs
using System;

namespace MyFirstConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int sum = Calculator.Add(2, 3);        //用Calculator类的Add方法
            Console.WriteLine($"2 + 3 = {sum}");
        }
    }
}

7. “编译”和“运行”——底层发生了啥?

你点Run(或F5)时,IDE会:

  • 检查语法,把代码编译成二进制文件(.exe或.dll),放到bin/Debug/net9.0/bin/Release/net9.0/
  • 启动编译好的文件。
  • 把结果输出到你看到的终端/控制台。

bin/ 和 obj/:这俩文件夹干嘛的?

  • bin/——你的成品(编译好的程序)都在这。
  • obj/——临时文件,编译器中间用的。

一般这俩文件夹可以无视,内容会自动重建。

8. 写代码和操作项目时常见错误

写代码可不是瞎敲键盘。一旦出现CS5001: Program does not contain a static 'Main' method suitable for an entry point这种报错,大家就开始疯狂百度,IDE还会用更复杂的语言吐槽你。

  • 常见错误之一——代码写在方法或类外面。在C#里不能直接在程序文件里写表达式。所有东西都得放在类和方法里!
  • 文件名和类名不一致。虽然可以,但最好让文件名和类名一样,方便你(和你未来的同事)。
  • 命名空间搞混。如果你在另一个namespace里建了类,别忘了用using引入。
  • 忘了入口点。如果你删了或改名了Main方法,程序就跑不起来。
2
任务
C# SELF, 第 5 级, 课程 4
已锁定
数字的数量
数字的数量
2
任务
C# SELF, 第 5 级, 课程 4
已锁定
三个数中的最小值
三个数中的最小值
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION