小编Rob*_*ean的帖子

在对象上调用getter而不是将其存储为局部变量(内存占用,性能)

在下面的代码中,我们进行了listType.getDescription()两次调用:

for (ListType listType: this.listTypeManager.getSelectableListTypes())
{
    if (listType.getDescription() != null)
    {
        children.add(new SelectItem( listType.getId() , listType.getDescription()));
    }
}
Run Code Online (Sandbox Code Playgroud)

我倾向于重构代码以使用单个变量:

for (ListType listType: this.listTypeManager.getSelectableListTypes())
{
    String description = listType.getDescription();

    if (description != null)
    {
        children.add(new SelectItem(listType.getId() ,description));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是JVM以某种方式针对原始代码进行了优化,尤其是嵌套调用children.add(new SelectItem(listType.getId(), listType.getDescription()));.

比较两个选项,哪一个是首选方法,为什么?这就是内存占用,性能,可读性/易用性以及其他我现在不想到的内容.

后一个代码片段何时变得比前者更有利,也就是说,listType.getDescription()当使用临时局部变量变得更加理想时,是否存在任何(近似)调用次数,因为listType.getDescription()总是需要一些堆栈操作来存储this对象?

java performance readability memory-consumption

30
推荐指数
2
解决办法
7215
查看次数

将index.html设置为默认页面

我有一个空的ASP.NET应用程序,我添加了一个index.html文件.我想将index.html设置为网站的默认页面.

我试图右键单击index.html并设置为起始页面,当我运行它时,url是:http://localhost:5134/index.html但我真正想要的是当我输入:时http://localhost:5134,它应该加载index.html页面.

我的路线配置:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-routing

30
推荐指数
4
解决办法
4万
查看次数

UI测试工具?

寻找Windows(.NET WinForms)应用程序的UI测试工具.我们的想法是,分析师将通过一些UI记录测试,并且可以一遍又一遍地播放.

商业工具很好,但免费的奖励积分.

testing user-interface automation winforms

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

如何解释一个对象?

我想到这一点已经好几年了,但是我很快就会训练一些真正的青少年,需要向一个不知道它是什么的人解释一个对象是什么.

根据您在现实世界中使用的内容,我应该重点解释的对象的关键点是什么.例如:

  • 访问级别
  • 遗产
  • 封装
  • 多态性
  • 抽象化
  • 接口

language-agnostic oop object

27
推荐指数
5
解决办法
4088
查看次数

.NET中是否有SortedList <T>类?

我需要根据它们的内容对某些对象进行排序(实际上根据它们的一个属性,这不是关键,可能在不同对象之间重复).

.NET提供了两个类(SortedDictionarySortedList),并且都使用二叉树实现.它们之间的唯一区别是

  • SortedList比SortedDictionary使用更少的内存.
  • 对于未排序的数据,SortedDictionary具有更快的插入和删除操作,O(log n)而不是SortedList的O(n).
  • 如果列表是从排序数据中一次性填充的,则SortedList比SortedDictionary快.

我可以使用List实现我想要的,然后将其Sort()方法与IComparer的自定义实现一起使用,但它不会节省时间,因为每次我想要插入一个新对象时我会对整个List进行排序,而一个好的SortedList只会将项目插入正确的位置.

我需要的是一个带有RefreshPosition(int索引)的SortedList类,它只移动已更改(或插入)的对象,而不是每次内部对象更改时都使用整个列表.

我错过了一些明显的东西吗

.net c# sorting collections

26
推荐指数
2
解决办法
6822
查看次数

jQuery .toggle()在IE中不与TR一起使用

我正在使用jQuery的toggle()来显示/隐藏表行.它在FireFox中工作正常,但在IE 8中不起作用.

.show()/ .hide()工作正常.

slideToggle()在IE中也不起作用 - 它会瞬间显示然后再次消失.在FireFox中正常工作.

我的HTML看起来与此类似

<a id="readOnlyRowsToggle">Click</a>  
<table>  
  <tr><td>row</td></tr>  
  <tr><td>row</td></tr>  
  <tr class="readOnlyRow"><td>row</td></tr>  
  <tr class="readOnlyRow"><td>row</td></tr>  
  <tr class="readOnlyRow"><td>row</td></tr>  
</table>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$(document).ready(function() {  
    $(".readOnlyRow").hide();  
    $("#readOnlyRowsToggle").click(function() {  
        $(".readOnlyRow").toggle();  
    });  
});  
Run Code Online (Sandbox Code Playgroud)

html jquery toggle

25
推荐指数
3
解决办法
4万
查看次数

CA1026(所有参数应具有默认值)和扩展方法

前提

使用带有C#可选参数的代码分析(或fxCop)时,您可以收到CA1026的警告.对此的简短原因1不是使用默认值来提供所有参数.

下面的声明正确地生成了此警告

public Color GetColor(bool red, bool blue = true, bool green = true)
Run Code Online (Sandbox Code Playgroud)

但是,有一种情况是您无法使用默认值提供所有参数,这就是扩展方法.因此,下面的声明会因为第一个参数而生成警告:

public static bool ValidateRules(this string s, Rules rules = Rules.Default)
Run Code Online (Sandbox Code Playgroud)

编译器不允许您在this参数上指定默认值,因此只有两个解决方案是:

  1. 忽略警告,我不喜欢这样做,因为它会导致不良做法.
  2. 不使用扩展方法,我不喜欢这样做,因为我发现扩展方法使代码更易读.

问题

  • 以上两个选项是解决这个问题的唯一方法吗?
  • fxCop/Code Analysis在检查中是否不正确?

  1. 长期的原因

c# extension-methods code-analysis fxcop

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

Visual Studio 2012数据库图表?

我在C#中做得很少,并且正在关注Head First C#书.书中有一部分要求我为我的SQL数据库创建数据库图表,但在数据库资源管理器中没有数据库图表节点/文件夹.

我听说微软放弃了数据库图表功能,但还有另一种创建数据库图表的方法,这对我来说很容易理解吗?

c# sql visual-studio visual-studio-2012

18
推荐指数
3
解决办法
4万
查看次数

执行子进程失败

我试图用几个参数通过Python调用一个进程.执行批处理文件本身对我来说很好,但将其翻译成Python会让我尖叫.这里是批处理文件的内容:

"C:\Program Files\bin\cspybat" "C:\Program Files\bin\armproc.dll" "C:\Program Files\bin\armjlink.dll" "C:\Documents and Settings\USER\Desktop\CAL\testing\Verification\FRT\Code\TC1\Output\Genericb\Debug\Exe\Gen.out" --download_only --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf" "--drv_verify_download" "--semihosting" "--device=STM32F10xxB" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0" 
Run Code Online (Sandbox Code Playgroud)

批处理文件运行的可执行文件已命名cspybat.可执行文件的输出提供了以下信息:-- All parameters afterbackend are passed to the back end.

另请注意,有些参数是字符串,有些则不是.

这对我有用:

    """ MCU flashing function""" 
params = [r"C:\Program Files\bin\cspy",
          r"C:\Program Files\bin\arpro.dll",
          r"C:\Program Files\bin\arjink.dll",
          r"C:\Documents and Settings\USER\Desktop\Exe\GenerV530b.out",
          "--download_only", "--backend", "-B", "--endian=little", "--cpu=Cort3", "--fpu=None", "-p", 
          r"C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf",
           "--drv_verify_download", "--semihosting", "--device=STM32F10xxB", "-d", "jlink", "--drv_communication=USB0",
            "--jlink_speed=auto", "--jlink_initial_speed=32", "--jlink_reset_strategy=0,0" ]
print(subprocess.list2cmdline(params)) …
Run Code Online (Sandbox Code Playgroud)

python subprocess

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

如何对返回ContentResult的ActionResult进行单元测试?

我想单元测试以下ASP.NET MVC控制器索引操作.我该如何替换下面断言中的实际参数(以?为标记).

using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
    public class StatusController : Controller
    {
        public ActionResult Index()
        {
            return Content("Hello World!");
        }
    }
}


[TestMethod]
public void TestMethod1()
{
    // Arrange
    var controller = CreateStatusController();

    // Act
    var result = controller.Index();

    // Assert
    Assert.AreEqual( "Hello World!.", ? );
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc unit-testing actionresult

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