2016-11-30 42 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。只需右键单击您的项目并选择添加 - >新建项目。然后搜索课程,设置名称并单击添加按钮。 –