CSharp算法竞赛环境配置与模板使用

文章目录

    • 零、写在前面
    • 一、IDE
    • 二、模板库
    • 三、如何使用
      • [3.1 安装 SourceExpander](#3.1 安装 SourceExpander)
      • [3.2 安装 ac-library-csharp](#3.2 安装 ac-library-csharp)
      • [3.3 在本地使用atc模板库](#3.3 在本地使用atc模板库)
      • [3.4 如何展开自定义库](#3.4 如何展开自定义库)
        • [3.4.1 创建自定义类库](#3.4.1 创建自定义类库)
        • [3.4.2 安装 SourceExpander.Embedder](#3.4.2 安装 SourceExpander.Embedder)
      • [3.5 利用反射创建模板代码文件](#3.5 利用反射创建模板代码文件)
      • [3.6 利用VS单元测试来进行用例测试](#3.6 利用VS单元测试来进行用例测试)

零、写在前面

仓库地址:https://github.com/58164/CSharp-Template-for-Algorithm-Competition

个人比较喜欢C# 这门语言,所以这是一个C# 的环境配置以及板子的Blog

后续遇到Atc 模板库解决的问题,会逐步上传个人模板。

一、IDE

VS2026

二、模板库

来自CSharp版本的atc模板库:https://github.com/kzrnm/ac-library-csharp

三、如何使用

3.1 安装 SourceExpander

在 VS2026 中打开管理NuGet包安装SourceExpander 这个包

3.2 安装 ac-library-csharp

同样的,找到 ac-library-csharp 包并安装

3.3 在本地使用atc模板库

装完上面两个包,就可以正常使用 atc的板子了。

在主程序中加入 SourceExpander.Expander.Expand();

这样运行后就会生成一个 文件Combined.csx, SourceExpander 会在该文件尾部帮你展开你所引用的命名空间

3.4 如何展开自定义库

3.4.1 创建自定义类库

自己在VS中新建个项目,把想要添加的类定义放里面

比如我的IO板子:

3.4.2 安装 SourceExpander.Embedder

这次安装:SourceExpander.Embedder注意,在类库项目中安装,如果同时安装SourceExpander 和 SourceExpander.Embedder无法正常运行

然后在右侧解决方案处右键项目点击生成

这样目录下面会有dll文件,回到写代码的项目,右键点击添加-项目引用

点击浏览,找到dll文件,然后就可以引用类库的内容了

3.5 利用反射创建模板代码文件

就是写完A题,让脚本自动帮你创建B题的文件:Templates/Entry.cs

具体可以看Entry.cs 和 Template.cs代码

3.6 利用VS单元测试来进行用例测试

VS2026 没有 vscode 那种CPH judge 测试插件,但是VS自带的单元测试已经很方便了

测试脚本:Templates/Test1.cs

具体使用的时候创建一个测试单元的项目,把 Test1.cs 拷贝进去即可

对于每组用例:

DataRow 第一个字符串内放输入,第二个字符串放输出

多组用例直接写多个 DataRow 即可

效果:

相关推荐
geovindu13 小时前
CSharp: Observer Pattern
开发语言·后端·观察者模式·设计模式·c#·.netcore·行为模式
软件黑马王子17 小时前
20.Resources资源加载:基本实现
开发语言·前端框架·c#
张人玉17 小时前
基于 C# / .NET 8 + Windows Forms + SQLite 的桌面银行业务演示系统——华夏示范银行管理系统
windows·sqlite·c#·.net
1314lay_100717 小时前
C#调用Sql Server存储过程,并且使用传入表结构
数据库·经验分享·笔记·sqlserver·c#
慧都小妮子18 小时前
.NET 报表控件选型对比:Stimulsoft 与 FastReport 怎么选
c#·.net·报表开发·数据可视化·报表控件·报表引擎选型
1314lay_100720 小时前
C#调用Sql Server存储过程,有返回值的
数据库·sqlserver·c#
我是唐青枫20 小时前
C#.NET PInvoke 深入解析:封送、内存布局与原生互操作实战
开发语言·c#·.net
Am-Chestnuts20 小时前
AI 生成的数学公式,怎么用 DS随心转 导出成 Word 里能改的公式
人工智能·c#·word
geovindu21 小时前
CSharp: Strategy Pattern
开发语言·后端·c#·.net·.netcore·策略模式·行为模式
古少侠21 小时前
AI 内容粘到 Word 就乱?用 DS随心转 把复制的内容直接变成排版好的一段
人工智能·c#·word