我正在使用相当流行的FSharpx.Collections包,特别是NonEmptyList类型.
这种类型提供了这个NonEmptyList.cons
功能,但是我想像::
常规那样使用运算符List
,即head :: tail
.由于tail
必须已经是NonEmptyList<'a>
,不应该有任何冲突List
的::
运营商.
但是,似乎我无法定义运算符.这个:
let ( :: ) h t = NonEmptyList.cons h t
Run Code Online (Sandbox Code Playgroud)
导致编译错误:
Unexpected symbol '::' in pattern. Expected ')' or other token.
Run Code Online (Sandbox Code Playgroud)
我知道这::
与其他运营商并不是同一类别,但我不完全了解如何.于是,我尝试了几件事情或多或少随机,如更换::
带op_cons
之类的,都没有成功.
我错过了什么,有办法做我想做的事吗?
我完全清楚,对SQL查询进行清理的正确做法是对它们进行参数化.
我研究了许多预先存在的代码,其中的消毒措施是'
用''
动态字符串替换所有的实例.我想知道我应该如何关注.
事情就是这样:这段代码专门在T-SQL(SQL Server 2008R2及更高版本)上运行,据我所知,它'
是T-SQL 的唯一转义字符.
那么,你将如何执行注射攻击以超越上述措施?即就像T-SQL一样,非常"天真"的消毒实际上非常可靠.
最近发生的事情是,在完成对我们解决方案的Stable分支的一些小改动之后,同事意外地检查了他在开发分支上的一些未完成的工作.TFS将它全部捆绑为一个变更集.
虽然错误很容易被发现并修复,但我觉得我在这里缺少一些关键的东西.为什么TFS的"待定更改"页面允许您(更糟糕的是,默认情况下提供)创建包含您在每个分支上完成的所有内容的单个变更集?
在我看来,变更集应该包含对一个且只有一个分支的更改,因此您可以根据需要更有效地管理/合并/回滚它们,而不会影响其他分支.如果您同时处理多个分支,则在签入时应该要求您插入多个描述,并因此创建多个更改集.
假设我的推理至少是有效的(如果不一定是通用的),是否有办法配置TFS,以便用户不能一次签入多个分支的更改?
编辑:如果不这样做,我将很感激至少设置'待定更改'页面将默认情况下所有更改的文件放在'排除'部分,这样用户需要在签入之前手动包含它们(这将有助于他们注意任何意外的变化).