C# 我该如何解决这个问题?非静态字段-C需要对象引用#
我为另一个愚蠢的问题感到抱歉。我几乎完成了我的设置保存winform,当然要感谢StackOverflow的人们,但最后一件事我被卡住了。请不要因为我是初学者就把这记下来 我收到以下错误: 非静态字段、方法或属性“Spowlshovel.WindowsSize.Width.get”需要对象引用 非静态字段、方法或属性“Spowlshovel.WindowsSize.Height.get”需要对象引用 在这里: 设置.csC# 我该如何解决这个问题?非静态字段-C需要对象引用#,c#,winforms,C#,Winforms,我为另一个愚蠢的问题感到抱歉。我几乎完成了我的设置保存winform,当然要感谢StackOverflow的人们,但最后一件事我被卡住了。请不要因为我是初学者就把这记下来 我收到以下错误: 非静态字段、方法或属性“Spowlshovel.WindowsSize.Width.get”需要对象引用 非静态字段、方法或属性“Spowlshovel.WindowsSize.Height.get”需要对象引用 在这里: 设置.cs public partial class Settings : Form
public partial class Settings : Form
{
public Settings()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
var windowSize = new WindowSize { Width = WindowSize.Width, Height = WindowSize.Height };
WindowSizeStorage.WriteSettings(windowSize);
Application.Exit();
}
}
这是为了:
WindowsSize.cs
public class WindowSize
{
public int Width { get; set; }
public int Height { get; set; }
}
public static class WindowSizeStorage
{
public static string savePath = "WindowSize.dat";
public static WindowSize ReadSettings()
{
var result = new WindowSize();
using (FileStream fileStream = new FileStream(savePath, FileMode.Open))
{
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
result.Width = binaryReader.ReadInt32();
result.Height = binaryReader.ReadInt32();
}
}
return result;
}
public static void WriteSettings(WindowSize toSave)
{
using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(savePath, FileMode.Create)))
{
binaryWriter.Write(toSave.Width);
binaryWriter.Write(toSave.Height);
}
}
}
如果上述内容不足,您可以在附件中找到我的项目的完整文件。也许您的意思是:
var windowSize=newwindowsize{Width=this.Width,Height=this.Height}代码>
而不是:
var windowSize=newwindowsize{Width=windowSize.Width,Height=windowSize.Height}代码>
如前所述,它需要宽度和高度作为WindowSize
类的静态属性,但我认为这不是您想要的。相反,使用表单实例Width
和Height
属性更有意义。也许您的意思是:
var windowSize=newwindowsize{Width=this.Width,Height=this.Height}代码>
而不是:
var windowSize=newwindowsize{Width=windowSize.Width,Height=windowSize.Height}代码>
如前所述,它需要宽度和高度作为WindowSize
类的静态属性,但我认为这不是您想要的。相反,使用表单实例Width
和Height
属性更有意义。错误是不言自明的。为什么所有的代码?只需显示导致错误的行即可。可能的重复错误是不言而喻的。为什么所有的代码?只需显示导致错误的行。可能重复非常感谢,修复了它。当它允许我的时候,我会把这个标记为答案。非常感谢,它解决了这个问题。当它允许我的时候,我会把它标记为答案。