UG二次开发,难免会有大量的修正表达式的需求,因为二开人员大都是设计人员半路出家,所以C#语言的精华大多不会用。
这里通过C#的反射原理实现一个通用的修正表达式的方法。
1、我想很多开发人员修正表达式的方法都是这样的:
/// <summary>
/// 修正表达式,硬编码
/// </summary>
/// <param name="expCol"></param>
/// <param name="expModel"></param>
public static void UpdateExp(ExpressionCollection expCol, ExpressionModel expModel)
{
Expression[] expressions = expCol.ToArray();
foreach (var ex in expressions)
{
if (ex.Name == "A")
{
ex.Value = expModel.A == 0.0 ? ex.Value : expModel.A;
}
if (ex.Name == "B")
{
ex.Value = expModel.B == 0.0 ? ex.Value : expModel.B;
}
if (ex.Name == "C")
{
ex.Value = expModel.C == 0.0 ? ex.Value : expModel.C;

博客介绍了如何通过C#的反射原理来优化表达式修正方法,避免了硬编码和重复代码。首先展示了传统的修正方式,然后提出了一种利用反射实现的自动化匹配和修正表达式的方法,提升了代码的可维护性和效率。
最低0.47元/天 解锁文章
1379

被折叠的 条评论
为什么被折叠?



