小编Fil*_*ada的帖子

Git使用递归策略和耐心选项进行合并

如何使用递归策略提供的耐心选项将分支与git合并?我正在使用git版本1.7.3.1.msysgit.0

甚至文档也不一致,而且与实际命令输出的不同.

文件说:

git merge [-s <strategy>] [-X <strategy-option>]<commit>

进一步的文字:

-X<option>

(没有空间)

命令输出说:

-X, --strategy-option <option=value>

option for selected merge strategy
Run Code Online (Sandbox Code Playgroud)

所以我尝试了几个版本,结果如​​下:

$ git merge -s recursive -Xpatience sourceBranch
fatal: Unknown option for merge-recursive: -Xpatience

$ git merge -X patience sourceBranch
fatal: Unknown option for merge-recursive: -Xpatience

$ git merge -Xpatience sourceBranch
fatal: Unknown option for merge-recursive: -Xpatience

$ git merge --strategy-option patience sourceBranch
fatal: Unknown option for merge-recursive: -Xpatience

$ git merge -X option=patience sourceBranch …
Run Code Online (Sandbox Code Playgroud)

git

24
推荐指数
1
解决办法
1万
查看次数

运算符和转换之间的区别(涉及泛型)

最近我遇到了与铸造有关的奇怪问题.我所看到的每一个讨论/帖子都倾向于围绕使用强制转换,当确定要渲染的对象加上一些细节时.然而,我没有找到下面代码背后的原因:

class Program
{
    static void Main(string[] args)
    {
        var h = new SomeCommandHandler();
        var c = h as ICommandHandler<ICommand>; //this works as expected
        //var c = (ICommandHandler<ICommand>)h; //this throws - why?
    }

    interface ICommand { }
    class SomeCommand : ICommand { }

    interface ICommandHandler<I> where I : ICommand { }
    class SomeCommandHandler : ICommandHandler<SomeCommand> { }
}
Run Code Online (Sandbox Code Playgroud)

那么为什么第二个调用抛出一个异常呢?我不知道铸造和操作员之间的区别是什么?

编辑:它wpuld抛出上面的注释行"Unhandled Exception:System.InvalidCastException:无法将'SomeCommandHandler'类型的对象强制转换为'ICommandHandler`1 [ConsoleApplication1.Program + ICommand]'"

c# generics casting

0
推荐指数
1
解决办法
280
查看次数

标签 统计

c# ×1

casting ×1

generics ×1

git ×1