我需要在Visual Studio 11中禁用CSS自动格式.它只是让我疯狂,这太可怕了.我记得在2010版本中有一个选项可以禁用任何语言的自动格式化,但现在我再也找不到它了.每当我写一行并按下输入它就会弄乱我的代码.
最合适的格式化样式是Compact规则样式,但它在冒号后面添加了一个空格,并且它还将开始括号放在选择器后面(我将所有括号对齐到一个公共列).
假设我有一个带有两列布局的页面,其中左列是一组链接,并且当单击该链接时,它会在右列中加载关联的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的一个潜在问题.我的理解是,刷新模板页面时上述操作无效.我在同时试验它,但是知道专家如何处理它会很好.谢谢!
我目前正在做一些涉及邻接矩阵的图形计算,而我正在优化它的每一点.
我认为可以优化的说明之一是标题中的一个,它的原始形式:
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) 我需要从Android 2.3版麦克风中捕获声音并将其与存储在卡上的波形文件进行匹配.
如果它匹配,那么我需要触发一个特定的动作.
我想创建一个简单的3D编辑器程序,我不喜欢C++ windows编程.但是,我也不想在使用OpenGL时弄乱托管代码.因此,可以在本机C++中创建一个控件,它将托管OpenGL 3D绘图表面,没有其他控件,也有接口(方法和属性),并将其用作WinForms中的控件,甚至更好,WPF申请?
是否可以绘制沿其笔划宽度具有线性渐变的折线?也就是说,如果你有一个黑色在0和100%以及白色50%的渐变,黑色将始终位于线的边缘而白色位于中间,无论角度如何.可以把它想象成某种3D管道.当然,该线的笔划宽度至少为10px.这里的所有问题都询问如何在它的两端填补一条线.我绝对不会对此感兴趣.我使用GDI +在C#中工作,可以是任何.NET版本.
这里有一个关于在KeyValuePair(TKey,TValue)中覆盖ToString()的问题,这是不可能的.
我看到有一些属性类型,如DebuggerDisplayAttribute,DebuggerTypeProxyAttribute可以控制一个类型显示在调试器的方式.我只使用了调试器可视化工具.
从逻辑上讲,这些属性只能应用于用户定义的类(我认为除了部分类).
那么有没有办法在Visual Studio中控制内置(BCL).NET类型的调试结果?
编辑:为了使它更清晰一点,我主要对该类型的字符串表示感兴趣.它只是为了调试而"覆盖"ToString().
我注意到当你拖动地图时,如果你以加速运动拖动,在你释放鼠标后,地图有某种动量并且它会在短时间内保持滑动,但是 'dragend' 事件被触发当你松开鼠标时(对我来说这似乎是正确的)。
但是,您如何获得地图完成滑动的确切时刻?我对“center_changed”/“bounds_changed”解决方案不感兴趣,因为我需要对事件发出 XHR 请求,并处理一些数据。
我很好奇,如果一维数组比锯齿状数组更快,我测量了以下代码块的性能:
测试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# ×5
.net ×2
optimization ×2
android ×1
arrays ×1
c ×1
c++ ×1
css ×1
debugging ×1
events ×1
gdi+ ×1
google-maps ×1
gradient ×1
graphics ×1
if-statement ×1
java ×1
javascript ×1
jquery ×1
mouseevent ×1
opengl ×1
performance ×1
winforms ×1