You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Process类与C#系统Process类同名的技术疑问

为什么引入System.Diagnostics后还能定义同名的Process类?

这是C#命名空间作用域优先级的规则在起作用,核心逻辑很直接:

  • 编译器解析类型名称时,会优先查找当前命名空间内的类型,只有当当前命名空间找不到匹配类型时,才会去using语句引入的外部命名空间里搜索。
  • 你自定义的Process类属于Processes命名空间,而System.Diagnostics.Process属于完全独立的另一个命名空间。哪怕写了using System.Diagnostics;,在Processes命名空间的代码里直接写Process,编译器默认会绑定到你自定义的这个类,而非系统自带的那个。

额外补充:如果要引用系统的Process怎么办?

如果在这个文件里需要用到System.Diagnostics.Process,可以用两种方式:

  1. 写全限定名称:System.Diagnostics.Process.Start(...)
  2. 给系统类起别名:在文件顶部加using SysProcess = System.Diagnostics.Process;,之后就可以用SysProcess来指代系统的Process类。

内容的提问来源于stack exchange,提问作者AJ L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:05:20