2012-12-11 30 views
0

對於又一個愚蠢的問題,我很抱歉。我幾乎完成了我的設置保存winform,非常感謝StackOverflow的人,當然,但我堅持最後一件事。請不要僅僅因爲我是初學者而將其標記。我該如何解決這個問題?非靜態字段需要對象引用 - C#

我得到如下錯誤:

一個對象引用是所必需的非靜態字段,方法或屬性「ShovelShovel.WindowSize.Width.get」

的對象引用是所需的非靜態字段,方法或屬性 'ShovelShovel.WindowSize.Height.get'

這裏:

套裝tings.cs

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(); 
    } 
} 

都到:

WindowSize.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); 
     } 
    } 
} 

http://forums.codeguru.com/showthread.php?530631-I-m-having-trouble-with-my-code

那裏你可以找到我的附件中項目的全部文件,以防以上不足。

+1

這個錯誤很自我解釋。爲什麼所有的代碼?只顯示導致錯誤的行。 –

+0

可能的重複http://stackoverflow.com/questions/498400/an-object-reference-is-required-for-the-nonstatic-field-method-or-property-wi –

回答

3

也許你的意思是:

var windowSize = new WindowSize { Width = this.Width, Height = this.Height };

代替:

var windowSize = new WindowSize { Width = WindowSize.Width, Height = WindowSize.Height };

由於寫的,它需要的寬度和高度是WindowSize類的靜態屬性,但我不你不認爲這就是你的意圖。相反,使用表單實例WidthHeight屬性更有意義。

+0

非常感謝,修復它。我會將它標記爲答案,當它讓我。 – Fiona

相關問題