小编ber*_*hof的帖子

在Irony中定义常量和运算符

我是Irony和整个语言实现shebang的新手,所以我一直在玩Irony源附带的ExpressionEvaluator示例,这似乎(几乎)适合我正在进行的项目的需求.

但是,我希望它也支持布尔值,所以我将比较运算符添加到二元运算符列表中,如下所示:

BinOp.Rule = ToTerm("+") | "-" | "*" | "/" | "**"
  | "==" | "<=" | ">=" | "<" | ">" | "!=" | "<>"; // added comparison operators
Run Code Online (Sandbox Code Playgroud)

这是我想要实现的一个例子:

x = 1
y = 2
eval = x < 2
eval2 = y < x
bool = true
bool2 = (eval == eval2)
Run Code Online (Sandbox Code Playgroud)

由于添加了二元运算符,它成功解析了上述内容.但是,在编译和运行代码时,它在最后两行失败.

  1. bool = true行失败并显示以下消息:错误:变量true未定义.在(5:8).如何将truefalse定义为常量?
  2. bool2 = (eval == eval2) …

c# irony boolean-expression expression-evaluation

4
推荐指数
1
解决办法
1526
查看次数

.NET GDI +:绘制带圆角的线条

给定一个点数组,可以很容易地根据这些点绘制一条线,例如使用GraphicsPath类.

例如,以下几点...

[0]: (0,0)
[1]: (100,0)
[2]: (0,100)
[3]: (100,100)
Run Code Online (Sandbox Code Playgroud)

...描述了一个类似于Z的线.

但是接下来是挑战; 我需要绘制半径为10像素的圆角.在角落,我指的是线条中不是起点或终点的点.在这种情况下,有两个角(0,100)(100,0).

我玩过beziers,曲线和弧线,其中一些可能解决方案 - 我自己还没有找到它,因为我必须能够处理所有角度绘制的线条,而不仅仅是水平线条或垂直线条.

设置LineJoin所述的Pen目的是Round不充分的,因为这仅示出了具有较宽的笔.


编辑:为了澄清,我很清楚GraphicsPath类的bezier,曲线和弧功能.我正在寻找一些关于构建可以采用任意数量的点的算法的更具体的建议,并将它们与圆角串在一起.


我把以下函数放在一起,它返回一个表示带圆角的线的路径.该功能使用了LengthenLine功能,可在此处找到.

protected GraphicsPath GetRoundedLine(PointF[] points, float cornerRadius)
{
  GraphicsPath path = new GraphicsPath();
  PointF previousEndPoint = PointF.Empty;
  for (int i = 1; i < points.Length; i++)
  {
    PointF startPoint = points[i - 1];
    PointF endPoint = points[i];

    if (i > 1)
    {
      // shorten start point and add …
Run Code Online (Sandbox Code Playgroud)

.net drawing gdi+ rounded-corners graphicspath

3
推荐指数
1
解决办法
4806
查看次数

SQL Server数据库中的孤立约束

运行以下查询会导致客户端数据库中的所有约束.然而,在结果集几行似乎并不具有父,即parent_object_id = 0OBJECT_NAME(parent_object_id)回报NULL.

SELECT name, type_desc, OBJECT_NAME(parent_object_id), parent_object_id
FROM sys.objects
WHERE is_ms_shipped = 0
AND type_desc LIKE '%_CONSTRAINT'
Run Code Online (Sandbox Code Playgroud)

这是否意味着数据库中存在孤立约束?如果是这样,我该如何删除它们?

根据他们的名字,我可以看到他们是在结构发生大量变化之前的残羹剩饭.

sql-server default-constraint sql-drop

3
推荐指数
1
解决办法
2246
查看次数

如何在MSI安装程序创建的快捷方式上设置"以管理员身份运行"标志

我在Visual Studio 2010中有一个安装和部署项目.

我希望安装程序在我的解决方案中创建另一个项目的可执行文件的两个快捷方式.一个普通的快捷方式,它使用当前凭据简单地运行应用程序,另一个使用"设置为管理员"标志,从而确保在单击快捷方式时要求用户提供具有管理权限的凭据.

在快捷方式上设置

使用管理权限运行应用程序将启用某些不可用的功能.

乍一看似乎无法设置此标志.可以直接在Visual Studio中完成吗?如果没有,还有其他选择吗?

编辑:如果没有,是否可以使用自定义安装程序类以编程方式修改快捷方式?

windows-installer shortcut setup-project visual-studio-2010 setup-deployment

3
推荐指数
2
解决办法
3万
查看次数