C# 中的运算符问题
我正在将 vb 代码转换为 c#
有来自 telerik 库的枚举:
namespace Telerik.Windows.Controls
{
// Summary:
// Provides flags for enumerating the ViewModes supported by Telerik.Windows.Controls.RadScheduler.
[Flags]
public enum AvailableViewModes
{
// Summary:
// Enables Day view.
Day = 1,
//
// Summary:
// Enables Week view.
Week = 2,
//
// Summary:
// Enables Month view.
Month = 4,
//
// Summary:
// Enables Timeline view.
Timeline = 8,
//
// Summary:
// Enables All views.
All = 15,
}
}
并且 vb 中的代码是
cal.AvailableViewModes = cal.AvailableViewModes And Not AvailableViewModes.All
转换器返回我
cal.AvailableViewModes = cal.AvailableViewModes & !AvailableViewModes.All
,它不正确,因为不能 applu 运算符!到该枚举的操作数。
I'm converting vb code to c#
There is enum from telerik library:
namespace Telerik.Windows.Controls
{
// Summary:
// Provides flags for enumerating the ViewModes supported by Telerik.Windows.Controls.RadScheduler.
[Flags]
public enum AvailableViewModes
{
// Summary:
// Enables Day view.
Day = 1,
//
// Summary:
// Enables Week view.
Week = 2,
//
// Summary:
// Enables Month view.
Month = 4,
//
// Summary:
// Enables Timeline view.
Timeline = 8,
//
// Summary:
// Enables All views.
All = 15,
}
}
and code in vb is
cal.AvailableViewModes = cal.AvailableViewModes And Not AvailableViewModes.All
Converter returns me
cal.AvailableViewModes = cal.AvailableViewModes & !AvailableViewModes.All
and it's not correct because cannot applu operator ! to opperand of this enum.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
~
运算符翻转位。Use the
~
operator to flip the bits.按位
not
运算符是~
。The bitwise
not
operator is~
.请尝试以下
操作 转换器在这里遇到问题,因为 VB.Net 中的
Not
有两个用途:布尔值和按位。使用哪个版本取决于目标表达式的类型。由于Not
用于 VB.Net 代码中的数值,因此它实际上使用的是按位版本。在 C# 中,~
运算符是等效的。Try the following instead
The converter is having a problem here because
Not
in VB.Net has two purposes: Boolean and bitwise. Which version is used depends on the type of the expression being targeted. SinceNot
is being used on a numeric value in the VB.Net code it's actually using the bitwise version. In C# the~
operator is the equivalent.