因此,我最近与 Javascript 和 WinRT 面对面交流。基本上,我正在开发一个 WinRT API,所以它应该可以很好地与 Javascript、C++ 和 C# 配合使用。如果传入的值为空,我在 API 中有一个属性可以执行特殊操作。因此,例如:
public string Foo
{
get
{
return foobar.ToString();
}
set
{
if(string.IsNullOrEmpty(value))
{
foobar=SomeSpecialValue;
return;
}
ParseIntoFoobar(value);
}
}
对我来说,这似乎是一个非常好的财产。但是,当您在 Javascript 中使用类似这样的内容时:
myFoobar.foo=null;
结果是从ParseIntoFoobar
为什么抛出解析异常?因为显然 Javascript 中的 null 值"null"
就像在包含单词 null` 的字符串中一样
从我看到的文档来看,这应该导致 C# 转换为 null,或者它应该导致一个空字符串,而不是这个愚蠢的结果。事实上,你可以做出一些对我来说毫无意义的非常不直观的行为。投影:
public string Biz{get;set;}
Javascript:
myObject.biz=null;
log(myObject.biz==null); //results in false
解决此“功能”的最佳方法是什么?"null"
对于我想要检测空值但字符串并非完全无效的情况,我应该怎么做?(想想用户名或类似的东西)