以下代码将引发异常:
class SimpleClassWithRegex
{
public Regex RegProp { get; set; }
}
[TestMethod]
public void RegexTest()
{
string json = JsonConvert.SerializeObject(new SimpleClassWithRegex {RegProp = null});
// json = {"RegProp":null}
SimpleClassWithRegex obj = JsonConvert.DeserializeObject<SimpleClassWithRegex>(json);
//Above line throws a JsonSerializationException
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很奇怪,有人可以解释为什么这不是一个bug吗?或者也许建议一个解决方法?实例化一个Regex对象代替null当然会阻止它抛出异常.
产生的例外是:
Newtonsoft.Json.JsonSerializationException: Unexpected token when reading Regex. Path 'RegProp', line 1, position 15.
我试图Process.Start在ASP.NET Beta8项目中使用,我希望能够使用.Net核心在Linux上运行.Visual Studio在编译时给出了一个错误:
Error CS0103 The name 'Process' does not exist in the current context
回过头来,将鼠标悬停在Process.Start我身上,我可以看到一条消息"DNX core 5.0 not available".在asp.net 5中有不同的方法来调用进程吗?或者这可能还不可能?
这正是我使用它的方式:
var p = Process.Start("someprog", "someargs");
p.WaitForExit();
Run Code Online (Sandbox Code Playgroud) 我有这个代码不起作用:
Panel[] panelArr = new Panel[5];
for (Panel p:panelArr) {
p = new Panel();
}
Label lblName = new Label("Name:");
panelArr[0].add(lblName);
Run Code Online (Sandbox Code Playgroud)
它出现了错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at GUIVehicles$NewSportsCarDialog.<init>(GUIVehicles.java:65)
Run Code Online (Sandbox Code Playgroud)
但是,如果我用for循环替换for-each循环,它就可以工作.
for (int i = 0; i < 5; i++) {
panelArr[i] = new Panel();
}
Run Code Online (Sandbox Code Playgroud)
据我所知,通过每个循环的文档来看,两个for循环应该是等价的.显然情况并非如此,我想知道为什么?