2013-11-22 2 views
2

я добавить текстовый файл в словаре, но он дает NullReferenceException об ошибке: Ссылка на объект не указывает на экземпляр объектануль refrence при добавлении словаря в Unity3D

original File 

aa 
aah 
aahed 
aahing 
aahs 
aal 
aalii 
aaliis 
aals 

Код:

import System.Collections.Generic; 
import System.Linq; 

var MytextAsset:TextAsset; 
var myDictionary :Dictionary.<String,String>; 
function Start() { 

    /* split the text file up by newline characters */ 

    var textLines : String [] = MytextAsset.text.Split("/rn"[0]); 
    myDictionary.Add(textLines[0], textLines[0]); 

} 

ошибка в последней строке.

+0

Я не уверен, что это C#. –

+0

Не стесняйтесь, я просто догадался. – Tim

+0

Код знаком, но C# не использует двоеточие. Я не знаю, что это. –

ответ

2

Хотя я не уверен, что вы действительно используете C# здесь, вам, скорее всего, потребуется инициализировать myDictionary с помощью нового instanc e от Dictionary.<String,String>. Попробуйте что-то вроде

var myDictionary :Dictionary.<String,String> = new Dictionary.<String, String>(); 
0

Вам просто нужно создать экземпляр словаря, прежде чем использовать его, сделать это в начале, прежде чем использовать Add(), и вы должны быть гладко. Вот рабочий пример, который я просто использовал в единстве, используя пример вашего файла. Я только что отредактировали также добавить в цикле вам необходимо добавить все строки в myDictionary объекта:

import System.Collections.Generic; 
import System.Linq; 

var MytextAsset:TextAsset; 
var myDictionary :Dictionary.<String,String>; 
function Start() { 

    /* split the text file up by newline characters */ 

    var textLines : String [] = MytextAsset.text.Split("\n"[0]); 
    myDictionary = new Dictionary.< String, String >() ; 
    for(index = 0 ; index < textLines.length ; ++index){ 
     myDictionary.Add(textLines[index],textLines[index]); 
    } 

    for(index = 0 ; index < myDictionary.Count; ++index){ 
     Debug.Log(myDictionary.Item[textLines[index]]); 
    } 
} 

Example2

+0

thanku soo much for help теперь добавляет значения, но когда я хочу получить доступ к любому значению с помощью ключа, он не дает ключа ошибки – zahra

+0

Это зависит от того, что вы используете для установки ключа. Поскольку ваш исходный код отражает ваш ключ, он равен значению, которое немного избыточно. Как вы хотите получить доступ к значению? Какой тип ключа вы хотите использовать? –

+0

Я хочу использовать слово в списке в качестве ключа, так что, когда мы ищем слово, которое он сообщает о погоде, оно действительно или нет. – zahra

Смежные вопросы