无法在 visual studio 中查看 C# .net 的 gurobi 变量属性
Unable to view gurobi variable attributes in visual studio for C# .net
gurobi 模型运行,我可以优化和调试,但在调试器中,gurobi 变量显示为:gvar {Gurobi.GRBVar} Gurobi.GRBVar
我无法深入查看任何属性,例如 gvar.ub 或 gvar.X。有什么办法可以做到这一点? (使用 Visual Studio 2013 或 2015,gurobi 6.5)
更新:自 7.0 版以来,Gurobi 提供通过 .NET 属性访问属性和参数,因此此答案仅适用于旧版本。
Gurobi .NET 接口不会将属性公开为 C# 属性。您可以简单地创建自己的包装器 class 来获得此行为。这是 GRBVar
变量对象的包装示例:
using Gurobi;
using System;
public class Variable {
private GRBVar _variable;
public double LowerBound { get { return _variable.Get(GRB.DoubleAttr.LB); } }
public double UpperBound { get { return _variable.Get(GRB.DoubleAttr.UB); } }
public double ObjectiveCoefficient {
get { return _variable.Get(GRB.DoubleAttr.Obj); }
set { _variable.Set(GRB.DoubleAttr.Obj, value); }
}
public Variable(GRBVar variable) {
if ((object)variable == null) throw new ArgumentNullException("variable");
_variable = variable;
}
}
现在您可以像这样检查变量对象了:
gurobi 模型运行,我可以优化和调试,但在调试器中,gurobi 变量显示为:gvar {Gurobi.GRBVar} Gurobi.GRBVar 我无法深入查看任何属性,例如 gvar.ub 或 gvar.X。有什么办法可以做到这一点? (使用 Visual Studio 2013 或 2015,gurobi 6.5)
更新:自 7.0 版以来,Gurobi 提供通过 .NET 属性访问属性和参数,因此此答案仅适用于旧版本。
Gurobi .NET 接口不会将属性公开为 C# 属性。您可以简单地创建自己的包装器 class 来获得此行为。这是 GRBVar
变量对象的包装示例:
using Gurobi;
using System;
public class Variable {
private GRBVar _variable;
public double LowerBound { get { return _variable.Get(GRB.DoubleAttr.LB); } }
public double UpperBound { get { return _variable.Get(GRB.DoubleAttr.UB); } }
public double ObjectiveCoefficient {
get { return _variable.Get(GRB.DoubleAttr.Obj); }
set { _variable.Set(GRB.DoubleAttr.Obj, value); }
}
public Variable(GRBVar variable) {
if ((object)variable == null) throw new ArgumentNullException("variable");
_variable = variable;
}
}
现在您可以像这样检查变量对象了: