我想告诉JS中有效和无效日期对象之间的区别,但无法弄清楚如何:
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
Run Code Online (Sandbox Code Playgroud)
编写isValidDate
函数的任何想法?
Date.parse
用于解析日期字符串,它提供了一种检查日期字符串是否有效的权威方法.Date
实例,这最容易验证.Date
实例,然后测试它Date
的时间值.如果日期无效,则时间值为NaN
.我用ECMA-262检查了这个行为是标准的,这正是我正在寻找的.Dictionary<T1,T2>
在C#中合并2个或更多字典()的最佳方法是什么?(像LINQ这样的3.0功能很好).
我正在考虑一种方法签名:
public static Dictionary<TKey,TValue>
Merge<TKey,TValue>(Dictionary<TKey,TValue>[] dictionaries);
Run Code Online (Sandbox Code Playgroud)
要么
public static Dictionary<TKey,TValue>
Merge<TKey,TValue>(IEnumerable<Dictionary<TKey,TValue>> dictionaries);
Run Code Online (Sandbox Code Playgroud)
编辑:从JaredPar和Jon Skeet得到一个很酷的解决方案,但我正在考虑处理重复键的东西.在发生碰撞的情况下,只要它是一致的,将哪个值保存到dict并不重要.
我听说暴露数据库ID(例如在URL中)存在安全风险,但我无法理解原因.
关于为何存在风险或为何不存在风险的任何意见或联系?
编辑:当然访问是作用域的,例如,如果你看不到资源,foo?id=123
你会得到一个错误页面.否则URL本身应该是秘密的.
编辑:如果URL是秘密的,它可能包含生成有限的生成令牌,例如有效1小时,只能使用一次.
编辑(几个月后):我目前的首选做法是使用UUIDS作为ID并公开它们.如果我使用序列号(通常用于某些DB上的性能)作为ID,我喜欢为每个条目生成一个UUID令牌作为备用键,并公开它.
我有一个补丁文件(统一差异),像输出svn diff
,git diff
或diff -u ...
.我想回顾一下,但统一的差异格式 - 特别是有很多文件和变化 - 对我来说很难.
如何从补丁文件中获取格式良好的差异视图?我没有文件本身,只有diff,所以我不能使用所有常规的diff工具.
到目前为止,我最好的两个策略是:
#!diff
-formatted部分中的Trac wiki中,然后单击"预览" - 这将创建一个非常棒的差异视图:{{{ #!diff <unified diff here> }}}
有桌面工具可以做到这一点吗?有没有办法说服kdiff3/diffmerge/p4merge /等可视化补丁文件?复制Trac可视化的东西也会很棒.
编辑:Windows支持的奖励积分,最好是安装程序或无痛安装.
我有一个现有的WebForms项目,我正在添加MVC页面.我创建了一个MVC项目并复制了项目类型guids.
它工作正常,但我无法让Visual Studio在我的控制器和视图目录上显示"添加控制器"或"添加视图"向导(它们不是,/Controllers
并且/Views
它们在/Foo/Controllers
和中/Foo/Views
).
是否可以启用向导?
我正在为我的Android代码编写一些POJO测试.
我想用JDK本地运行它们(不是在模拟器上使用Dalvik) - 速度,JUnit 4,Mockito,并且能够在没有设备的情况下运行无头 - 所以我在Eclipse中有一个单独的"Java"项目.
如果我正在测试的方法恰好引用Android SDK中的任何内容,例如android.util.Log
,测试失败 - 这是有道理的,因为android.jar
它不在类路径中.重现我有这个测试用例:
public class FooTests {
@Test
public void testFoo() {
android.util.Log.d("x", "y");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我android.jar
显式添加到测试项目的类路径中,我会得到类似的异常
java.lang.RuntimeException: Stub!
at android.util.Log.d(Log.java:7)
at com.example.FooTests.testFoo(FooTests.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Run Code Online (Sandbox Code Playgroud)
有没有办法让代码工作而不会嘲笑Android SDK依赖的最后一点?也许android.jar
已经存在嘲弄?
编辑:现在我最终将类包装起来android.util.Log
并将它们注入到实例中,用于经典的基于IOC的测试.斯科特的PowerMock建议是我需要它的下一步.
稍后编辑:Robolectric!
所以我正试图将一些东西发布到网络服务器上.
System.Net.HttpWebRequest EventReq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("url");
System.String Content = "id=" + Id;
EventReq.ContentLength = System.Text.Encoding.UTF8.GetByteCount(Content);
EventReq.Method = "POST";
EventReq.ContentType = "application/x-www-form-urlencoded";
System.IO.StreamWriter sw = new System.IO.StreamWriter(EventReq.GetRequestStream(), System.Text.Encoding.UTF8);
sw.Write(Content);
sw.Flush();
sw.Close();
Run Code Online (Sandbox Code Playgroud)
看起来没问题,我根据ENCODED数据的大小设置内容长度...无论如何,它在sw.flush()失败,"要写入流的字节超过指定的内容长度大小"
StreamWriter在我背后做了一些魔法,我不知道吗?有没有办法让我了解StreamWriter正在做什么?
我想在eclipse中使用Team-> Add和Team-> Commit的键盘快捷键.我正在使用eGit.
我在Preferences-> General-> Keys中添加了它们,其工作原理是键出现在Team-> add和Team-> commit旁边的菜单上.
但是,当我按下键时似乎没有任何事情发生.在第一个键之后弹出小键辅助窗口并向我显示匹配的命令,其中包含"添加到Git索引",但该文件未添加到git索引中.
更一般地说,我希望能够将当前项目提交给git而无需使用鼠标.
在.NET中最好的方法是什么?我总是忘记我需要Dispose()
(或包裹using
).
编辑:经过长时间的使用WebRequest
,我发现了自定义WebClient
.好多了.
c# ×3
eclipse ×2
webrequest ×2
.net-3.0 ×1
android ×1
asp.net ×1
asp.net-mvc ×1
database ×1
date ×1
dictionary ×1
diff ×1
egit ×1
formatting ×1
java ×1
javascript ×1
junit ×1
junit4 ×1
merge ×1
patch ×1
security ×1
session ×1
streamwriter ×1
timeout ×1