小编cod*_*ave的帖子

git commit --amend很危险

我有时会git commit -amend在我真正想要的时候不小心打字git commit --amend.Git检测到并问我

$ git commit -amend
error: did you mean `--amend` (with two dashes ?)
Run Code Online (Sandbox Code Playgroud)

这很棒.

但是,有时我会写git commit -ammend,然后git会接受这个并将我的拼写错误视为git -a -m "mend",所以它只是提交日志消息"mend".

我正在寻找一种方法来阻止git这样做.我试图定义一个别名,git commit -ammend但现在失败了.您对如何处理此问题有任何建议吗?

git version-control git-commit git-alias

7
推荐指数
1
解决办法
987
查看次数

Read和Load的语义差异

我想知道ReadLoad之间的语义差异是什么(在C#中).比较例如,我没有看到差异

  • System.IO.MemoryStream.Read()
  • System.Console.Read()
  • System.IO.StreamReader.Read()
  • System.IO.File.ReadAllText()

VS

  • System.Xml.XmlDocument.Load()
  • System.Xml.Linq.XDocument.Load()
  • System.Reflection.Assembly.Load()

因为我希望对我的程序进行一致的命名,只需从持久存储中获取文件以及初始化,交叉引用和错误检查的更高级别函数,我请求您提供输入.

c# linq language-agnostic programming-languages

6
推荐指数
1
解决办法
63
查看次数

什么是Debugger.IsAttached属性的合理用例

可以在运行时使用.Net属性Debugger.IsAttached来检测是否附加了调试器.这意味着当附加调试器时,此属性可用于具有不同的行为.我可以轻松地提出示例,说明为什么不使用这个属性(因为程序很难调试)但我很难找到一个使用它似乎合法的例子.

您是否有使用Debugger.IsAttached是明智的选择?

.net c# debugging

5
推荐指数
1
解决办法
71
查看次数

如何修复MSB8029:中间目录或输出目录不能驻留在VS2013中的临时目录下

Visual Studio 抱怨每次编译 warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build.

我正在检查项目并更改了输出目录中间目录,但我仍然收到解决方案中每个项目的消息。

我怎样才能解决这个问题?

visual-studio-2013

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

Debug.Assert并不总是在c#中工作

我有一个奇怪的问题,Asserts被忽略了.您可以使用此最小示例重现它.我想知道为什么会出现这个问题以及如何面对它:

public class TestAssert
{
    public string EmptyString
    {
        get
        {
            System.Diagnostics.Debug.Assert(false);
            return string.Empty;
        }
    }
    Dictionary<string, object> dict = new Dictionary<string, object>();

    public void ShowAssertIgnored()
    {
        var foo = dict[EmptyString];
    }
}    
Run Code Online (Sandbox Code Playgroud)

Debug.Assert(false)即使评估了属性,您也可以看到它被忽略.打电话吧

var test = new TestAssert();
test.ShowAssertIgnored();
Run Code Online (Sandbox Code Playgroud)

你应该看到我的意思(也显示在图像上).不评估Debug.Assert,但属性是

代码编译并在Debug中运行(其他断言工作正常!),32位,x86 + AnyCPU,VS2012专业,.Net Framework 4

编辑: 该项目是一个控制台应用程序,我连续几次运行它.在System.Diagnostics.Debug.Assert(false);最常见的断点之前会出现一个消息框.但并非总是如此:当我只是多次重试相同的情况时,我有时会在控制台中看到结果.

再说一遍:我可以在VS2012调试器中重现非确定性行为!

.net c# assert visual-studio-2012

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