小编Tib*_*org的帖子

在Visual Studio中禁用CSS自动格式(特别是11)

我需要在Visual Studio 11中禁用CSS自动格式.它只是让我疯狂,这太可怕了.我记得在2010版本中有一个选项可以禁用任何语言的自动格式化,但现在我再也找不到它了.每当我写一行并按下输入它就会弄乱我的代码.

最合适的格式化样式是Compact规则样式,但它在冒号后面添加了一个空格,并且它还将开始括号放在选择器后面(我将所有括号对齐到一个公共列).

css autoformatting visual-studio visual-studio-2012

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

事件和DOM元素

假设我有一个带有两列布局的页面,其中左列是一组链接,并且当单击该链接时,它会在右列中加载关联的html页面/模板.

在加载模板时,有一个模板处理程序,它通过requirejs初始化为单例,并定义了一些方法和处理程序,如:

SomePage.prototype.saveHandler: function(e) { ... }; // Page handler has a handler

SomePage.prototype.initialize: function() {
    $('#btnSave').on('click', saveHandler);
}
Run Code Online (Sandbox Code Playgroud)

然后,每次页面加载时,我都会通过初始化方法附加DOM事件.

SomePage.initialize(); // This attaches the click event
Run Code Online (Sandbox Code Playgroud)

现在,当我单击左侧的另一个链接时,将加载另一个模板页面,并为该页面重复上述过程.

我想知道之前附加到btnSave元素的click事件会发生什么?它现在是jQuery缓存中的悬空事件处理程序吗?

如果我再次加载同一页面时尝试删除它,它会实际删除原始事件吗?

$('#btnSave').off('click', saveHandler);
Run Code Online (Sandbox Code Playgroud)

执行以下块是否可以防止内存泄漏/悬空引用?

// The potential problem here is that btnSave is part of the newly loaded template 
// and not the element i attached the handler to earlier (which doesn't exist anymore)
$('#btnSave').off('click', saveHandler);

$('#btnSave').on('click', saveHandler); 
Run Code Online (Sandbox Code Playgroud)

什么是确保我最终没有悬挂引用和内存泄漏的最佳方法.这也是普通javascript的一个潜在问题.我的理解是,刷新模板页面时上述操作无效.我在同时试验它,但是知道专家如何处理它会很好.谢谢!

javascript jquery javascript-events

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

在C#中优化if语句(a> 0 && b> 0 && a + b == c)

我目前正在做一些涉及邻接矩阵的图形计算,而我正在优化它的每一点.

我认为可以优化的说明之一是标题中的一个,它的原始形式:

if ((adjMatrix[i][k] > 0) && (adjMatrix[k][j] > 0) && (adjMatrix[i][k] + adjMatrix[k][j] == w))
Run Code Online (Sandbox Code Playgroud)

但为了方便起见,我将坚持标题中提供的表格:

if (a > 0 && b > 0 && a + b == c)
Run Code Online (Sandbox Code Playgroud)

我不喜欢的是> 0部分(是一个邻接矩阵,在它的初始形式中它只包含0和1,但随着程序的进展,零被从2开始的数字替换,直到没有更多的零.

我做了一个测试并删除了a和b的> 0部分,并且有了显着的改进.超过60088次迭代减少了792ms,从3672ms减少到2880ms,这是原始时间的78%,这对我来说非常好.

所以我的问题是:你能想到一些在C#中优化这样的语句并获得相同结果的方法吗?也许是一些按位操作或类似的东西,我对它们并不熟悉.

回答每一个想法,即使它不适合.我会自己做速度测试,让你知道结果.

编辑:这是一个编译器,我将在我的计算机上自己运行它.我刚刚描述的不是我抱怨的问题/瓶颈.它的当前形式的程序可以满足我的需求,但我只想推进它并使其尽可能基本和优化.希望这能澄清一点.

编辑我相信提供完整的代码它是一个有用的东西,所以在这里,但请记住我在下面的粗体说.我想严格关注if语句.该程序基本上采用邻接矩阵并存储所有存在的路径组合.然后根据一些系数进行排序和修剪,但我没有包括在内.

int w, i, j, li, k;
int[][] adjMatrix = Data.AdjacencyMatrix;
List<List<List<int[]>>> output = new List<List<List<int[]>>>(c);

for (w = 2; w <= 5; w++)
{
    int[] plan;

    for (i = 0; i < c; i++)
    { …
Run Code Online (Sandbox Code Playgroud)

c# optimization if-statement

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

在android中比较和匹配两个声音

我需要从Android 2.3版麦克风中捕获声音并将其与存储在卡上的波形文件进行匹配.

如果它匹配,那么我需要触发一个特定的动作.

java android

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

创建本机C++ OpenGL 3D编辑器并将其用作C#中的WinForms或WPF控件

我想创建一个简单的3D编辑器程序,我不喜欢C++ windows编程.但是,我也不想在使用OpenGL时弄乱托管代码.因此,可以在本机C++中创建一个控件,它将托管OpenGL 3D绘图表面,没有其他控件,也有接口(方法和属性),并将其用作WinForms中的控件,甚至更好,WPF申请?

c c# c++ opengl winforms

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

在GDI +中沿着它的笔划宽度绘制一条带有线性渐变的折线

是否可以绘制沿其笔划宽度具有线性渐变的折线?也就是说,如果你有一个黑色在0和100%以及白色50%的渐变,黑色将始终位于线的边缘而白色位于中间,无论角度如何.可以把它想象成某种3D管道.当然,该线的笔划宽度至少为10px.这里的所有问题都询问如何在它的两端填补一条线.我绝对不会对此感兴趣.我使用GDI +在C#中工作,可以是任何.NET版本.

.net c# graphics gdi+ gradient

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

控制.NET BCL类型在调试器中的显示方式(对KeyValuePair(TKey,TValue)感兴趣)

这里有一个关于在KeyValuePair(TKey,TValue)中覆盖ToString()的问题,这是不可能的.

我看到有一些属性类型,如DebuggerDisplayAttribute,DebuggerTypeProxyAttribute可以控制一个类型显示在调试器的方式.我只使用了调试器可视化工具.

从逻辑上讲,这些属性只能应用于用户定义的类(我认为除了部分类).

那么有没有办法在Visual Studio中控制内置(BCL).NET类型的调试结果?

编辑:为了使它更清晰一点,我主要对该类型的字符串表示感兴趣.它只是为了调试而"覆盖"ToString().

.net c# debugging visual-studio visual-studio-debugging

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

Google Maps API v3 'dragend' 事件在地图完成滑动之前触发

我注意到当你拖动地图时,如果你以加速运动拖动,在你释放鼠标后,地图有某种动量并且它会在短时间内保持滑动,但是 'dragend' 事件被触发当你松开鼠标时(对我来说这似乎是正确的)。

但是,您如何获得地图完成滑动的确切时刻?我对“center_changed”/“bounds_changed”解决方案不感兴趣,因为我需要对事件发出 XHR 请求,并处理一些数据。

events google-maps mouseevent google-maps-api-3

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

为什么一维数组比C#中的Jagged数组更快?

我很好奇,如果一维数组比锯齿状数组更快,我测量了以下代码块的性能:

测试1:锯齿状阵列

double[][][][] jagged = ArrayExtensions.Get4DMatrix<double>(100, 100, 50, 50, 0);
for (int iter = 0; iter < 5; iter++)
{
    sw.Restart();
    for (i = 0; i < 100; i++)
    {
        for (j = 0; j < 100; j++)
        {
            for (k = 0; k < 50; k++)
            {
                for (l = 0; l < 50; l++)
                {
                    test = jagged[i][j][k][l];
                    jagged[i][j][k][l] = test;
                }
            }
        }
    }
    Console.WriteLine("Jagged Arrays, Test {0}: {1} ms", iter, sw.ElapsedMilliseconds);
}
Run Code Online (Sandbox Code Playgroud)

测试2:单维数组

double[] single = …
Run Code Online (Sandbox Code Playgroud)

c# arrays optimization performance

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