2016-11-30 39 views
0

首先我是C#和Windows窗體編程的新手。我一直是C嵌入式系統程序員。我正在寫一個Winform程序,我需要包含一個大的(48Kb)只讀數據的數組進行模擬。我有它在我的Form1類聲明的頂部,問題是它繼續爲1500線,像這樣之前,我給我的公共Form1中()代碼:C#在Windows窗體中包含大型只讀數組

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace ScrollWave 
{ 
    public partial class Form1 : Form 
    { 
     readonly byte[] wvSamps = 
     { 
      0x94, 0xa5, 0xca, 0x62, 0x41, 0x28, 0x4c, 0x93, 0x09, 0x42, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x01, 0x40, 0x10, 0x00, 0x00, 0x70, 0x0d, 0x58, 0x3e, 0xc6, 0xd1, 0x07, 0x9c, 
      0x94, 0xa3, 0x8a, 0x62, 0x41, 0x29, 0x4c, 0x94, 0xc9, 0x32, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x01, 0x40, 0x10, 0x00, 0x00, 0x70, 0x0d, 0x58, 0x3e, 0xc6, 0xd2, 0x08, 0x0c, 

在「C」我可以把它作爲一個#include文件,所以我不必向下滾動1500行即可查看我正在處理的代碼。我如何包含大量的只讀數據,而不必將其放在Form1類聲明的頂部,這樣我就可以避免向下滾動1500行以獲取我正在處理的代碼?謝謝!

+0

你可以在'public static class'中將你的數組硬編碼,但是我建議你使用json序列化它並從json文件中讀取它。 –

+0

爲什麼不爲你正在嘗試使用的byte []創建一個單獨的靜態類..並創建該類,以便它將共享相同的命名空間'ScrollWave' – MethodMan

+0

考慮將數據放入二進制文件並添加它作爲一種資源。這會給你一個'byte []'屬性,你可以訪問'Resources.wvSamps'。請參閱[如何:添加或刪除資源](https://msdn.microsoft.com/en-us/library/3bka19x4(v = vs.100).aspx)。 –

回答

1

只要創建例如名爲ArrayData.cs一個新的類文件,並在該類作爲靜態字段聲明你的數據:

public static class ArrayData 
{ 
    public static byte[] WvSamps = {0x94, 0xa5, 0xca, 0x62, 0x41, 0x28, 0x4c, 0x93, 0x09, 0x42}; 
} 

然後你就可以在你的表單中使用它:

public partial class Form1 : Form 
{ 
    public void DoSomethingWithData() 
    { 
     for(var i = 0; i < ArrayData.WvSamps.Length; i++) 
     { 
      //process your data here... 
     } 
    } 
} 

希望這有助於!

+0

好的,對不起,我是Visual Studio的一個真正的noob,我假設我會在另一個.cs文件中創建這個類並將其添加到我的項目中。我使用的是VS 2010 Express,我已經厭倦了,看不到如何將文件添加到我的項目中。我的學習是通過使用Visual Studio 2010閱讀Stephens C#編程。感謝您的幫助,如果我能通過一些簡單的東西,我應該在路上。 –

+0

@DaleH。只需右鍵單擊您的項目並選擇添加 - >新建項目。然後搜索課程,設置名稱並單擊添加按鈕。 –