世界俱乐部杯赛

CodeRush AI 助手进驻 Visual Studio:AiGen/AiFind 亮相(二)

翻译|行业资讯|编辑:龚雪|2025-07-18 10:47:44.217|阅读 2 次

概述:CodeRush 25.1 新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),直接在 Visual Studio 环境中响应,免除窗口切换与手动操作,让开发者更专注核心问题。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

CodeRush 是专为 Visual Studio 打造的高效开发插件,通过集成 AI 驱动功能(如自然语言生成代码的 AiGen 和智能搜索逻辑的 AiFind)、语音交互及深度重构工具,直接在 IDE 内无缝完成代码生成、修改与导航,消除窗口切换与手动操作,显著提升编码速度与专注度,让开发者更聚焦核心问题解决。

CodeRush for Visual Studio v25.1已于日前全新发布,此版本新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),接下来我们将逐一为大家揭开这些功能的神秘面纱,欢迎下载新版体验!

在上文中(>),我们为大家介绍了安装说明、AiGen、调试器显示属性等,本文将继续介绍添加操作符重载、添加测试用例等。

获取CodeRush v25.1正式版下载

DevExpress技术交流群11:749942875      欢迎一起进群讨论

添加操作符重载

对于该类中的插入符号,双击并按住Ctrl键,然后说:“我可以获得一些数学运算符重载吗?”

过了一会儿,您应该看到下面的方法插入到您的Fraction类中:

[DebuggerDisplay("{Numerator}/{Denominator}")]
public class Fraction
{
public static Fraction operator +(Fraction a, Fraction b)
{
int numerator = a.Numerator * b.Denominator + b.Numerator * a.Denominator;
int denominator = a.Denominator * b.Denominator;
return new Fraction(numerator, denominator);
}

public static Fraction operator -(Fraction a, Fraction b)
{
int numerator = a.Numerator * b.Denominator - b.Numerator * a.Denominator;
int denominator = a.Denominator * b.Denominator;
return new Fraction(numerator, denominator);
}

public static Fraction operator *(Fraction a, Fraction b)
{
int numerator = a.Numerator * b.Numerator;
int denominator = a.Denominator * b.Denominator;
return new Fraction(numerator, denominator);
}

public static Fraction operator /(Fraction a, Fraction b)
{
if (b.Numerator == 0)
{
throw new DivideByZeroException("Cannot divide by a fraction with zero numerator.");
}
int numerator = a.Numerator * b.Denominator;
int denominator = a.Denominator * b.Numerator;
return new Fraction(numerator, denominator);
}
public int Numerator { get; set; }
public int Denominator { get; set; }

public Fraction(int numerator, int denominator)
{
if (denominator == 0)
{
throw new ArgumentException("Denominator cannot be zero.", nameof(denominator));
}

Numerator = numerator;
Denominator = denominator;
}
}
新增测试用例

有了新的操作符重载,改进的Fraction类更容易使用。现在让我们用一些测试用例来验证它。双击并按住Ctrl键,然后说一些类似于“一些测试用例怎么样?”

CodeRush v25.1新版图集

在几秒钟内,您应该将一个新的类和文件FractionTests.cs添加到项目中。

在机器上使用已经引用的NUnit框架,AI构建了以下内容:

[TestFixture]
public class FractionTests
{
[Test]
public void TestAddition()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(1, 3);
var result = fraction1 + fraction2;
Assert.AreEqual(5, result.Numerator);
Assert.AreEqual(6, result.Denominator);
}

[Test]
public void TestSubtraction()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(1, 3);
var result = fraction1 - fraction2;
Assert.AreEqual(1, result.Numerator);
Assert.AreEqual(6, result.Denominator);
}

[Test]
public void TestMultiplication()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(2, 3);
var result = fraction1 * fraction2;
Assert.AreEqual(2, result.Numerator);
Assert.AreEqual(6, result.Denominator);
}

[Test]
public void TestDivision()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(3, 4);
var result = fraction1 / fraction2;
Assert.AreEqual(4, result.Numerator);
Assert.AreEqual(6, result.Denominator);
}

[Test]
public void TestZeroDenominatorThrowsException()
{
Assert.Throws<ArgumentException>(() => new Fraction(1, 0));
}

[Test]
public void TestZeroNumeratorInDivisionThrowsException()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(0, 1);
Assert.Throws<DivideByZeroException>(() => fraction1 / fraction2);
}
}

请注意,在上面高亮显示的行中,我们正在执行新的操作符重载。

遗留代码和新框架

要升级遗留代码或使用新框架,请打开该文件并简单地说明所需内容。例如,在我们刚刚创建的测试类中,可能希望将所有这些Assert.AreEqual调用转换为更流畅的内容。

例如,双击并按住Ctrl键,然后说,“嘿,我们能把所有这些Assert.AreEqual调用转换为Assert.That调用吗?”

在几秒钟内,AiGen将类中的每个方法更改为如下所示:

[TestFixture]
public class FractionTests
{
[Test]
public void TestAddition()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(1, 3);
var result = fraction1 + fraction2;
Assert.That(result.Numerator, Is.EqualTo(5));
Assert.That(result.Denominator, Is.EqualTo(6));
}

[Test]
public void TestSubtraction()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(1, 3);
var result = fraction1 - fraction2;
Assert.That(result.Numerator, Is.EqualTo(1));
Assert.That(result.Denominator, Is.EqualTo(6));
}

[Test]
public void TestMultiplication()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(2, 3);
var result = fraction1 * fraction2;
Assert.That(result.Numerator, Is.EqualTo(2));
Assert.That(result.Denominator, Is.EqualTo(6));
}

[Test]
public void TestDivision()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(3, 4);
var result = fraction1 / fraction2;
Assert.That(result.Numerator, Is.EqualTo(4));
Assert.That(result.Denominator, Is.EqualTo(6));
}

[Test]
public void TestZeroDenominatorThrowsException()
{
Assert.Throws<ArgumentException>(() => new Fraction(1, 0));
}

[Test]
public void TestZeroNumeratorInDivisionThrowsException()
{
var fraction1 = new Fraction(1, 2);
var fraction2 = new Fraction(0, 1);
Assert.Throws<DivideByZeroException>(() => fraction1 / fraction2);
}
}

更多产品资讯及授权,欢迎来电咨询:023-68661681


关于慧都科技

慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。

慧都是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@defefr.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP