2012-04-21 2 views
0

У меня есть массив строкКак преобразовать элемент массива строк в строку?

public: array<String ^>^sss; 
public: 
    Form1(void) 
    { 
     InitializeComponent(); 
     // 
     //TODO: Add the constructor code here 
     // 
     array<String ^>^sss = gcnew array<String ^>(3); 
     sss[0]="asdasd"; 
     sss[1]="s115ss"; 
     sss[2]="s115ss"; 
    } 

Мне нужно, чтобы показать 1-ый элемент в текстовое поле.

Я использовал

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 

      textBox2->Text = sss[0]; 
     } 

VC++ дал System.NullReferenceException. Зачем? И как это исправить?

Ошибка:

An unhandled exception of type 'System.NullReferenceException' occurred in test000.exe Additional information: Object reference not set to an instance of an object.

+2

Пожалуйста, добавьте полный трассировки стека. Основываясь на предоставленной вами информации, я готов поспорить, что NullReference является объектом 'textbox' not' s' –

+0

Not Right. Следующий код работает в моей программе textBox2-> Text = "11111"; – user765168

ответ

1

Ваш код не должен компилироваться, если вы также есть поле под названием sss. Если это так, вы хотите установить значение этого поля в конструкторе, а не какой-то несвязанной локальной переменной с тем же именем:

array<String ^>^sss; 

public: 
    Form1(void) 
    { 
     InitializeComponent(); 

     sss = gcnew array<String ^>(3); 
     sss[0]="asdasd"; 
     sss[1]="s115ss"; 
     sss[2]="s115ss"; 
    } 
+0

Прошу прощения, я забыл добавить это в свой пост. У меня есть код в моем коде (только что отредактировал мой пост), но моя программа не работает. – user765168

+0

Как я уже сказал, вы хотите установить поле, а не некоторую локальную переменную в конструкторе. Измените строку, в которой вы «gnew» массив, в тот, который был в моем ответе. – svick

+0

Вы правы. Мне жаль, что я не понял, что вы имеете в виду в первый раз. – user765168

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