【发布时间】:2012-11-02 10:30:39
【问题描述】:
我有一个用 VB.NET 编译的程序集,其中包含两个运算符:
Public Shared Operator =(quarterA As CalendarQuarter, quarterB As CalendarQuarter) As Boolean
Return quarterA.StartDate = quarterB.StartDate AndAlso
quarterA.EndDate = quarterB.EndDate AndAlso
quarterA.Quarter = quarterB.Quarter
End Operator
Public Shared Operator <>(quarterA As CalendarQuarter, quarterB As CalendarQuarter) As Boolean
Return Not (quarterA = quarterB)
End Operator
但是,当使用 C# 中的程序集执行相等检查 if (qtr != null) 时,我收到错误:
Cannot implicitly convert type 'object' to 'bool'
在 C# MVC4、Razor 中的使用:
@{Html.BeginForm();}
<div class="ui-form ui-form-horizontal form-width-narrow">
<div class="title">
Choose a Quarter</div>
<div class="group">
<label><strong>Control</strong></label>
<div class="field">
@Html.DropDownListFor(x => x.Quarter, new SelectList(Model.AvailableQuarters))
<input value="Select" class="ui-button" type="submit" />
</div>
</div>
@if (Model.Quarter != null) {
// Error in the above statement
}
</div>
@{Html.EndForm();}
我需要做什么才能使相等运算符正常运行?
【问题讨论】:
-
你为什么要谈作业?您的代码不包含任何分配。也不能重载赋值。
-
您能否给出一个简短但完整的示例(VB 和C#)来说明问题?
-
@CodesInChaos,你是对的。我再次检查了代码,并把它误认为是另一个不相关的位。感谢您指出这一点。