C# 整数和字符串上的空值,但它们已被赋值

C# 整数和字符串上的空值,但它们已被赋值,c#,winforms,krypton-toolkit,C#,Winforms,Krypton Toolkit,我有一个小问题,VS给了我两个关于两个值(int[]和string[])的警告,这两个值是空的,因为它们从未分配过,但我确定我分配了它们,这是代码中与我的问题相关的部分: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

我有一个小问题,VS给了我两个关于两个值(int[]和string[])的警告,这两个值是空的,因为它们从未分配过,但我确定我分配了它们,这是代码中与我的问题相关的部分:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ComponentFactory.Krypton.Toolkit;
using System.IO;
namespace DA_Story_Editor
{
public partial class Form1 : ComponentFactory.Krypton.Toolkit.KryptonForm
{
    public Form1()
    {
        InitializeComponent();
    }
    int[] pntrs;
    string[] Strs;

    private void ReadFile(string path1)
    {

        FileStream stream = new FileStream(path1, FileMode.Open, FileAccess.Read);

        for (int i = 0; i < Pntrnum; i++)
        {
            stream.Position = Pntrstrt;
            stream.Read(data, 0, data.Length);
            pntrs[i] = BitConverter.ToInt32(data, 0);
        }
        for (int i = 0; i < Pntrnum; i++)
        {
            byte[] sttrings = new byte[pntrs[i + 1] - pntrs[i]];
            stream.Position = pntrs[i];
            stream.Read(sttrings, 0, sttrings.Length);
            Strs[i] = Encoding.GetEncoding("SHIFT-JIS").GetString(sttrings);

            ListViewItem item = new ListViewItem(new string[]
                {
                    pntrs[i].ToString("X"),
                    Strs[i],
                    Strs[i],
                });
            listView1.Items.AddRange(new ListViewItem[] {item});
        }
    }
}
}
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用系统文本;
使用System.Windows.Forms;
使用ComponentFactory.Krypton.Toolkit;
使用System.IO;
名称空间dau故事编辑器
{
公共部分类Form1:ComponentFactory.Krypton.Toolkit.KryptonForm
{
公共表格1()
{
初始化组件();
}
int[]pntrs;
字符串[]Strs;
私有void读取文件(字符串路径1)
{
FileStream stream=新FileStream(路径1,FileMode.Open,FileAccess.Read);
对于(int i=0;i

我不知道为什么它会给我这些警告,顺便说一句,它还会在以下行给我一个“NullReferenceException:
pntrs[i]=BitConverter.ToInt32(数据,0)

您从未构造和分配变量本身-但您尝试使用数组:

// Need to add:
pntrs = new int[Pntrnum];

for (int i = 0; i < Pntrnum; i++)
{
    stream.Position = Pntrstrt;
    stream.Read(data, 0, data.Length);
    pntrs[i] = BitConverter.ToInt32(data, 0);
}

// Need to add:
Strs = new string[Pntrnum];

for (int i = 0; i < Pntrnum; i++)
{
    byte[] sttrings = new byte[pntrs[i + 1] - pntrs[i]];
    stream.Position = pntrs[i];
    stream.Read(sttrings, 0, sttrings.Length);
    Strs[i] = Encoding.GetEncoding("SHIFT-JIS").GetString(sttrings);
//需要添加:
pntrs=新整数[Pntrnum];
对于(int i=0;i
您从未构造和分配变量本身-但您尝试使用数组:

// Need to add:
pntrs = new int[Pntrnum];

for (int i = 0; i < Pntrnum; i++)
{
    stream.Position = Pntrstrt;
    stream.Read(data, 0, data.Length);
    pntrs[i] = BitConverter.ToInt32(data, 0);
}

// Need to add:
Strs = new string[Pntrnum];

for (int i = 0; i < Pntrnum; i++)
{
    byte[] sttrings = new byte[pntrs[i + 1] - pntrs[i]];
    stream.Position = pntrs[i];
    stream.Read(sttrings, 0, sttrings.Length);
    Strs[i] = Encoding.GetEncoding("SHIFT-JIS").GetString(sttrings);
//需要添加:
pntrs=新整数[Pntrnum];
对于(int i=0;i