这些VB语句的C#等效

时间:2016-06-30 05:40:37

标签: c# vb.net winforms

我正在寻找这些语句的C#替代品,这些语句在VB中并且已经使用Telerik在线转换器转换为C#。编译器会因为无法识别这些语句而产生错误。

  • My.Settings.Reload();
  • My.Settings.MainScreenLeft = Me.Left

  • My.Settings.MainScreenTop = Me.Top

  • My.Settings.MainScreenWidth = Me.Width

  • My.Settings.Save()

  • My.Settings.Mode = CboMode.SelectedItem.ToString

4 个答案:

答案 0 :(得分:2)

C#中没有My的直接翻译。此链接提供了有关在C#中使用VB My类的详细信息:

https://msdn.microsoft.com/en-us/library/ms173136.aspx

由于您尝试使用“设置”访问项目设置,因此请尝试使用My.Settings.替换语句中的Properties.Settings.Default.。确保您正在访问的属性(如MainScreenTop)作为项目属性中的设置存在。

答案 1 :(得分:2)

我认为你应该使用设置变量: https://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx

答案 2 :(得分:2)

部分问题是您的转换器可能无法正确转换原始的Settings.Designer.vb文件。

原件的结构通常如下:

Partial NotInheritable Class Settings
    Inherits Global.System.Configuration.ApplicationSettingsBase
    ...
End Class

但是您的C#文件的结构应如下所示,以使之前的建议有效:

namespace YourRootNamespace //project-level original VB 'root' namespace, if you have one
{
    namespace Properties
    {
        internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
        {
            ...
        }
    }
}

现在有关使用'Properties.Settings.Default'的建议将有效。

此外,在该类的底部,VB在“我的”命名空间中包含一个模块“MySettingsProperty” - 只需删除它(这只是允许'Settings'类包含在'My'命名空间中)。 / p>

答案 3 :(得分:1)

Properties.Settings.Default.Reload();

Properties.Settings.Default.MainScreenLeft = this.Left;

Properties.Settings.Default.MainScreenTop = this.Top;

Properties.Settings.Default.MainScreenWidth = this.Width;

Properties.Settings.Default.Save();
Properties.Settings.Default.Mode = CboMode.SelectedItem.ToString();