我发现自己正盯着看起来与此类似的代码:
private double? _foo;
public double? Foo
{
get { return _foo; }
set { Baz(-value); }
}
public void Baz(double? value)
{
// Perform stuff with value, including null checks
}
Run Code Online (Sandbox Code Playgroud)
在测试中,我有这个:
[Test]
public void Foo_test()
{
...
Foo = null;
...
}
Run Code Online (Sandbox Code Playgroud)
我预计测试会失败(抛出),因为我认为你真的不能应用一元减号null,我认为这会在Foos setter中发生.然而,意想不到的事情发生,并测试并没有失败.
我可能会对这是为什么会发生这种情况做出明智的猜测,但我认为如果知道发生了什么事的人可以启发我会更好.
(并且在有人指出显而易见的事实之前:是的,这种否定应该被推到内部Baz.)
编辑并跟进
所以,我从乔恩斯基特和JaredPar,谁回答都将投入感谢如何,我的问题的一部分.经过一些谷歌搜索后,我发现Eric Lippert的这篇博客文章解释了"提升"的数学定义,这非常有意义.我还阅读了语言规范的相关部分,这些部分非常简单地解释了c#中提升的机制.
具体来说,我现在知道在提升过程的早期,对操作数进行空检查,如果操作数为null,则null将是应用运算符的结果(在我的情况下是一元减号).所以-null是null.
现在,问题的"为什么"部分.如果我operator -在a上定义我自己的(一元)class(在其中我否定一个包装的值),并在空引用上调用此运算符,我将得到一个NullReferenceException.为什么"提升"表现不同? …
谁能告诉我如何找到运行msi安装程序的位置。
例如,我Sample.msi在桌面上的InstallerExample文件夹中有我的and Manuals文件夹。
我需要这些信息,以便可以在File / @ Source中使用它,就像下面给出的那样。
<File Id="MyFileId" Name="MyFile" Source="[SourceDir]Manuals" KeyPath="yes" >
Run Code Online (Sandbox Code Playgroud)
SourceDir 应该有价值 C:\Users\bla\Desktop\InstallerExample\Manuals
如果有人可以帮助我,那就太好了。
我是一名非网络程序员,但我现在对网络技术更感兴趣.
我知道HTML和JavaScript今天是Web应用程序的基本技术,但实际上它们似乎并非严格意义上的创建.(HTML是为网页创建的,JavaScript是为了使它们有点动态).它对今天如何创建高级Web应用程序有任何重大负面影响吗?有什么限制?
你是否预测5到10年内会出现什么新技术来取代HTML + JavaScript?如果是,那会是什么样的?
我有一个类型,它在实现IComparable<T>和IComparable. 我没有从 LINQ 得到我期望的结果,基本上看起来好像IComparable<T>没有应用该类型实现的。
我以为我会用以下形式的表达式得到我想要的结果:
var result = MyEnumerable<T>.OrderBy(r => r);
Run Code Online (Sandbox Code Playgroud)
其中T自身实现IComparable<T>。它没有发生。
我可以看到相关的问题,其中IComparable<T>为排序指定了特定的类,但我找不到一个使用自己IComparable<T>实现的默认值的问题T。
我的语法显然不正确。请问正确的语法是什么?
提前致谢。
我这两天都吓坏了......
我已经使用Bootstrap CSS设置了一个页面,页面头部中包含以下代码:
<link rel="stylesheet" href="bootstrap.min.css">
<script type="text/javascript" src="http://openclassifieds.googlecode.com/svn-history/r119/branches/2.0/themes/twitter/js/bootstrap-modal.js"></script>
<script type="text/javascript" src="http://openclassifieds.googlecode.com/svn-history/r119/branches/2.0/themes/twitter/js/bootstrap-transition.js"></script>
<script type="text/javascript" src="http://openclassifieds.googlecode.com/svn-history/r119/branches/2.0/themes/twitter/js/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)
在我的身体里,我有这个:
<button class="btn btn-large btn-primary" data-toggle="modal" data-target="#modal-signin" data-backdrop="true" data-keyboard="true">Launch Modal</button>
<div id="modal-signin" class="modal hide fade">
<div class="modal-header">
<a href="#" class="close" data-dismiss="modal">×</a>
<h2>Sign in <small>or sign up</small></h2>
</div>
<div class="modal-body">
<h3>Teste</h3>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在Bootstrap文档中,这是我必须要做的才能使其工作,但是当我点击按钮时它没有做任何事情......我不知道问题是什么......我需要紧急帮助
谢谢.
我已经存储了出生日期的var char格式:
示例:1989-8-15
我想找出它的子字符串,即我想要单独的年,月和日期.我用以下代码尝试过它:
string dateOfbirth = (string)(DataBinder.Eval(e.Item.DataItem, "dob"));
int length = (dateOfbirth).Length;
int index1 = dateOfbirth.IndexOf('-');
int index2 = dateOfbirth.IndexOf('-', index1 + 1);
string year = dateOfbirth.Substring(0, index1);
string month = dateOfbirth.Substring(index+1, index2-1);
string day = dateOfbirth.Substring(index2, length);
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误.请提出解决方案.提前致谢.
javascript ×2
.net ×1
c# ×1
css ×1
html ×1
icomparablet ×1
jquery ×1
linq ×1
nullable ×1
sql-order-by ×1
substring ×1
wix ×1