小编Let*_*man的帖子

那么Windows下路径斜杠(/或\)的正确方向是什么?

似乎Windows坚持\在文件路径中写反斜杠,而.NET的URI类用斜杠写它们/.有没有正确的方法,即使在最原始的系统中也可以接受?为什么.NET的URI显示与Windows其他部分相比的其他斜杠?

uri path backslash

57
推荐指数
7
解决办法
8万
查看次数

C#中的无声失败,看似未处理的异常不会导致程序崩溃

在winforms应用程序中,在表单的Load事件中,添加以下行:

throw new Exception();
Run Code Online (Sandbox Code Playgroud)

并运行该应用程序.它运行没有问题.这称为静默失败,您可以尝试在之前和之后添加消息框,并且您很快就会发现,而不是崩溃应用程序,throw语句只是从Load事件中退出.

我确信没有必要解释这是多么丑陋和危险.

尽管如此,我仍然想知道这种可怕行为背后的原因(可能是历史).我敢肯定这不是一个设计决定,可能是没有选择,或懒惰.有人知道吗?

如果有人能指出我可能导致安静失败的事件清单,那将会很高兴.

这是我的代码片段 - 我不知道它可能会有什么帮助 - 但是,这里是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Form f = new Form();
            f.Load += new EventHandler((x, y) => { throw new Exception(); });
            Application.Run(f);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

编辑 它似乎不会发生在每个人身上.我使用:fw 3.5,winforms,vs 2008,vista x64,winforms的新干净项目,上面提到的代码.

c# 64-bit exception winforms

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

为什么我们不能在while循环中定义变量?

我们可以做的:

using (Stream s ..)
Run Code Online (Sandbox Code Playgroud)

和:

for (int i ...)
Run Code Online (Sandbox Code Playgroud)

为什么我们不能这样做:

while ((int i = NextNum()) > 0) {..}
Run Code Online (Sandbox Code Playgroud)

我发现它非常有用和明智.

c# syntax

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

Internet Explorer 10没有显示svg路径(d3.js图)

如果我打开这个图例如: IE10中的http://bl.ocks.org/mbostock/1153292,我就是看不到节点之间的链接.

我能在代码中做些什么,甚至可以用Internet Explorer查看吗?

似乎IE只是忽略了svg的一些部分......我找不到任何方法让它可见.

javascript internet-explorer svg d3.js internet-explorer-10

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

为什么我们不能在C#项目中使用F#类?

为什么我们不能在C#项目中使用F#类?

最终,它都是CIL,不是吗?

我们有什么理由不能将F#源文件添加到C#项目中吗?

c# clr f#

19
推荐指数
2
解决办法
4950
查看次数

无法通过SignalR Hub访问会话信息.我的设计错了吗?

我刚刚发现你无法访问SignalR Hub中的当前会话.

简化我的场景:我试过写聊天.

当前用户的名称保留在会话中.

我已经使用SignalR来更新(一组连接)每个新消息.

现在我看到我无法通过集线器访问当前用户的名称.

我想可能会有一些变通方法,但是我的设计是错误的吗?

我不应该为此目的使用SignalR吗?或者我不应该Session以这种方式使用?

c# asp.net-mvc-4 signalr

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

为什么Font不可变?

不可变的字体会使程序员和GC都感到困扰,因为每次都需要创建一个新实例.

为什么Font是一个不可变的引用类型呢?

c# fonts immutability

12
推荐指数
3
解决办法
1190
查看次数

为什么object.ToString()存在?

有一个IStringable界面是不是更优雅和整洁?

谁需要这个Type.FullName物品归还给我们?

编辑:每个人都在问为什么我觉得它更优雅..

好吧,它就是这样,而不是IComparable,对象会有CompareTo方法,默认情况下抛出异常或返回0.

有些对象不能也不应该被描述为字符串.对象可以同样返回string.Empty.Type.FullName只是一个随意的选择..

对于Console.Write(对象)之类的方法,我认为应该是:Write(IStringable).

但是,如果你将WriteLine用于除字符串之外的任何东西(或其ToString很明显的东西,如数字),在我看来它只适用于调试模式..

顺便说一句 - 我该怎么评论你们所有人?我发布答案可以吗?

.net c# object

12
推荐指数
2
解决办法
2895
查看次数

Windows 8 GUI,以及WPF/SilverLight/WinRT/Metro/BUILD关系

固定:

我没有使用上面指定的任何技术,而且我无法找到有关标题中技术之间关系的最新信息,所以如果有人能够解释我所有这些主题,我会很高兴.

根据事实和官方微软的信息,WPF仍然相关吗?我记得大约一年前有很多关于WPF死的标题.是什么让人们这么说?去年有什么变化吗?

此外,metro/WinRT/build还需要哪些知识?知道WPF对这些中的任何一个都有帮助吗?多少?

我发现了类似的问题,但它们大约在一年前出现,我认为有些东西已经改变了.

wpf microsoft-metro windows-8

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

窗口不在焦点时的window.setTimeout行为

这是我能想到的最简单的复制代码:

ms = 30; // 1000 ?
num = 1;
function test()
{
    num+=ms;
    document.getElementById('Submit').value = num; // Using native Javascript on purpose
    if (num < 4000)
        window.setTimeout(test, ms);
}
test()
Run Code Online (Sandbox Code Playgroud)

我将ms(迭代之间的毫秒数)设置为30,运行脚本并移动到浏览器上的不同选项卡.

然后我等待大约10秒钟(脚本应该在4秒内完成)然后回到选项卡.

如果我使用Firefox,我看到脚本还没有完成,数字仍然在运行(从我离开它们的地方恢复,我猜).

这很烦人,

但如果我改为ms1000并重复上述步骤,当我回到标签时,我看到脚本确实已经完成了.

(该脚本仍需要4秒钟才能完成).

也就是说,即使窗口没有焦点,有时Firefox也会运行window.setTimeout,有时它不会.可能取决于持续时间

另一方面,Internet Explorer不会发生这种情况.

即使选项卡没有聚焦,它也会继续运行脚本.无论我怎么设置ms.

  • 这是由于Firefox的某些性能考虑因素吗?

  • 究竟发生了什么?

  • 现在,如何在浏览器之间保持一致的基本功能?

或者,我工作错了吗?编码是一种奇怪的方式吗?

我只是尝试以延迟的方式反复更改DOM,而不使用setInterval(因为我正在改变它自己的间隔).

  • 最重要的是,我该如何看待这个?

我不能假设我的用户不会离开标签.

我想让我的用户离开页面,就像人们想要的那样.

如果一个人离开并在半小时后回来,他/她将在页面上看到不相关的动画,仍在运行.

连接到该页面的所有用户都可以看到其中一些动画.

它们不需要以毫秒的分辨率同步,但只有当用户将选项卡/窗口置于焦点时才能启动它们.

我正在使用Firefox 25.0.1和IE 11.(Windows 7)

javascript cross-browser settimeout

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