小编Tom*_*ana的帖子

如何在JavaScript中检查未定义或null变量?

我们经常在JavaScript代码中使用以下代码模式

if (typeof(some_variable) != 'undefined' && some_variable != null)
{
    // Do something with some_variable
}
Run Code Online (Sandbox Code Playgroud)

是否有一种不那么冗长的检查方式具有相同的效果?

根据一些论坛和文献说,以下应该具有相同的效果.

if (some_variable)
{
    // Do something with some_variable
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当未定义时,Firebug将这样的语句评估为运行时错误some_variable,而第一个语句就好了.这只是Firebug的一个(不需要的)行为,还是这两种方式之间确实存在一些差异?

javascript null undefined

480
推荐指数
12
解决办法
58万
查看次数

检测树结构之间的差异

这更像是一个CS问题,但却是一个有趣的问题:

假设我们有2个树结构,其中重组的节点或多或少相同.你怎么找到的

  1. 任何
  2. 在某种意义上是最小的

操作顺序

  • MOVE(A, B) - 在节点B下移动节点A(使用整个子树)
  • INSERT(N, B)- 在节点B下插入节点N.
  • DELETE (A) - 删除节点A(使用整个子树)

将一棵树转换为另一棵树.

显然可能存在这样的转变是不可能的情况,小孩子是带有孩子B的根A到带有孩子A的根B等等.在这种情况下,算法将简单地传递" 不可能 " 的结果.

更为壮观的版本是网络的概括,即当我们假设一个节点可以在树中多次出现(实际上有多个"父")时,禁止循环.

免责声明:这不是一个功课,实际上它来自一个真正的业务问题,我发现很有趣,想知道是否有人可能知道一个解决方案.

algorithm tree comparison diff computer-science

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

使用IoC时,单元测试的策略应该是什么?

毕竟我读到的关于依赖注入和IoC的内容我决定尝试在我们的应用程序中使用Windsor Container(它是一个50K LOC多层Web应用程序,所以我希望它不是一个矫枉过正).我使用了一个简单的静态类来包装容器,并在启动应用程序时对其进行初始化,这对于现在来说非常好.

我的问题是关于单元测试.我知道通过让我可以将类协作者的存根/模拟实现注入到被测试的类中,DI将使我的生活变得更加轻松.我已经使用这种技术编写了几个测试,这似乎对我有意义.我不确定的是我是否应该在单元测试中使用IoC(在本例中为Windsor Castle)(可能以某种方式将其配置为针对我的特殊情况返回存根/模拟)或者是否更好地连接所有依赖项在测试中手动.你怎么想,什么做法对你有用?

c# unit-testing dependency-injection castle-windsor inversion-of-control

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

许可处理的模式/设计建议

我们的(ASP.NET Web)应用程序中有一个相当复杂的权限处理系统.用户可以对不同类型的对象拥有特定权限,某些权限甚至可以打包到分配给用户的组/角色中.总而言之,这最终会出现一个非常复杂的混乱局面,用于确定用户是否可以执行/查看您必须评估许多不同权限来源的内容,这可以按需按照特定情况以某种方式完成.

我的问题是(从高层次的角度来看)是否有一些建议/通用设计模式来处理一般的权限概念,也可能是您在架构中处理它们的经验.

.net c# asp.net permissions design-patterns

8
推荐指数
2
解决办法
6785
查看次数

TFS 2010,我可以只迁移源代码吗?

我们旧的TFS 2008安装已经过时了,我们希望迁移到TFS 2010.但是,我们团队项目的结构没有经过深思熟虑,并且已经进行了各种实验,包括流程模板和工作项的编辑等等.上.

因此,我想将源代码迁移到具有完整历史记录的TFS 2010,并尽可能保持新TFS 2010安装的所有其他方面.我怎样才能做到这一点 ?

tfs2008 visual-studio-2010 tfs-to-tfs-migration-tool visual-studio-2008 tfs2010

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

VS 2010中项目的平台配置

我在Visual Studio中有第三方项目类型,出于某种原因,它仅支持构建的.NET平台配置,对于解决方案中的所有其他(标准C#)项目,我只有AnyCPU.不幸的是,自从升级到VS 2010以来,它在构建时会产生以下错误:

错误39未为项目"ReferencedBusinessProject.csproj"设置OutputPath属性.请检查以确保您为此项目指定了Configuration和Platform的有效组合.Configuration ='Debug'Blatform ='.NET'.如果某个其他项目正在尝试遵循项目到项目对此项目的引用,此项目已卸载或未包含在解决方案中,并且引用项目不使用相同或等效项目构建,则也可能出现此错误配置或平台.C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 483 10 CustomTypeProject

它在缺少的内容中具有相当的描述性,但到目前为止我还没有找到任何解决方法.你知道如何解决这个问题或者问题是什么?

c# configuration projects-and-solutions solution visual-studio-2010

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

使用Razor定义类的别名

在普通的C#代码中,我可以使用using语句来定义类名的别名,例如

using MyAlias = Some.Long.Namespace.Class;
Run Code Online (Sandbox Code Playgroud)

我在剃刀视图中尝试过相同的方法,这是一种天真的方法

@using MyAlias = Some.Long.Namespace.Class
Run Code Online (Sandbox Code Playgroud)

不起作用.有没有办法达到同样的效果?

c# asp.net-mvc razor asp.net-mvc-3

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

很简单的正则表达式不起作用

我已经阅读过使用正则表达式(在.NET中)匹配字符串内的单词,我可以\b在正则表达式中使用单词boundary specifier().但是,这些调用都不会导致任何匹配

Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\b@p1\b");

Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\bINSERT\b");
Run Code Online (Sandbox Code Playgroud)

有什么我做错了吗?

编辑:第二个已经工作;)

.net c# regex string

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

是否可以从签入(TFS)中排除一些文件?

我们在源代码管理(TFS)下的各种项目中使用配置文件,每个开发人员必须在其本地副本中进行一些调整以配置其环境.构建过程负责将配置文件替换为服务器配置作为部署的一部分,因此实际上并不重要的是存储库中的内容.但是,我们无论如何都希望在存储库中保留某种默认的非破坏版本的配置文件,以便例如不参与特定项目的人不会因为本地配置错误而遇到麻烦.

我们尝试通过引入仅禁止签入配置文件的签入策略来解决此问题.这样可以正常工作,但仅仅因为我们懒得总是在挂起的更改窗口中取消选中这些复选框,问题就出现了:是否可以透明地禁用特定文件的签入,而不会使它们不受源代码控制(例如锁定它们)当前版本) ?

version-control tfs configuration-files visual-studio-2008

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

调试仪器中的UIAutomation脚本

我最近尝试使用UIAutomation框架进行iOS设备的一些简单的自动UI测试.虽然有趣且相对强大,但我发现编写脚本而没有调试它们的可能性非常繁琐.

有没有办法调试UIAutomation脚本?这里要强调的是脚本本身的调试,即JavaScript的一部分,我已经找到了如何调试测试应用程序本身的解释在这里.

iphone debugging xcode instruments ios-ui-automation

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