C# c语言中的运算符问题#
我正在将vb代码转换为c# telerik库中有enum:C# c语言中的运算符问题#,c#,vb.net,operators,vb.net-to-c#,C#,Vb.net,Operators,Vb.net To C#,我正在将vb代码转换为c# telerik库中有enum: namespace Telerik.Windows.Controls { // Summary: // Provides flags for enumerating the ViewModes supported by Telerik.Windows.Controls.RadScheduler. [Flags] public enum AvailableViewModes {
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
这是不正确的,因为不能应用运算符!反对这个枚举 使用
~
运算符翻转位。按位非
运算符为~
请尝试以下操作
cal.AvailableViewModes = cal.AvailableViewModes & (~AvailableViewModes.All)
转换器在这里出现问题,因为VB.Net中的
Not
有两个用途:布尔和按位。使用哪个版本取决于目标表达式的类型。由于VB.Net代码中的数值使用了Not
,因此实际上使用的是按位版本。在C#中,~
运算符是等价的 出于好奇,您正在使用什么转换工具?此工具: