C# 入门学习 (文件组织关系)

下面我将通过示例展示 C# 中多文件组成程序以及每个文件包含命名空间的情况。

C# 中,类型的可访问性由 “命名空间” 决定,而非文件名或文件路径

  • 在 Python 中,模块导入直接与文件名绑定(如 import ArithmeticOperations 对应 ArithmeticOperations.py 文件)。
  • 但在 C# 中,编译器关注的是 代码中声明的命名空间和类型,而非这些代码保存在哪个文件中。

假设我们有一个简单的计算器程序,由 3 个文件组成:

1. Program.cs 文件 - 包含程序入口点

2. ArithmeticOperations.cs 文件 - 包含算术运算相关代码

3. Validation.cs 文件 - 包含数据验证相关代码

  此项目结构为:

ConsoleApp1/
├── Program.cs
├── bb/                 // 新文件夹
│   └── ArithmeticOperations.cs  // 移动后的文件
└── Validation.cs
ArithmeticOperations.cs 文件中代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// 算术运算命名空间
namespace bb.Arithmetic 
{
    public class Operations
    {
        public int Add(int a, int b)
        {
            return a + b;
        }

        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }

    // 同一个命名空间中可以有多个类
    public class AdvancedOperations
    {
        public int Multiply(int a, int b)
        {
            return a * b;
        }
    }
}
Validation.cs 文件中代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// 验证命名空间
namespace Validation
{
    public class NumberChecker
    {
        public static bool IsValidNumber(string input)
        {
            return int.TryParse(input, out _);
        }
    }
}

// 一个文件中可以有多个命名空间
namespace CalculatorApp.Helpers
{
    public class DisplayHelper
    {
        public static void ShowMessage(string message)
        {
            Console.WriteLine($"[{DateTime.Now}] {message}");
        }
    }
}
Program.cs 文件中代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using bb.Arithmetic;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("简易计算器");

            // 使用Arithmetic命名空间中的类
            Operations op = new Operations();
            Console.WriteLine($"3 + 5 = {op.Add(3, 5)}");

            // 使用Validation命名空间中的类
            Console.WriteLine($"是否为有效数字: {Validation.NumberChecker.IsValidNumber("123")}");
            //等待输入
            Console.ReadLine();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值