与字符串变量相关的未声明标识符

Undeclared Identifier related to string variable

我是编程新手,当我尝试 运行 下面的代码时(我只粘贴了必要的部分)我遇到了错误: C2065:'myfilename':未声明的标识符

#pragma once
#include <string>
namespace First_App {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace MySql::Data::MySqlClient;
using namespace System::IO;
using namespace std;

// other events while clicking buttons etc . 

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

         Stream^ myStream;
         OpenFileDialog^ OpenFiledialogVariable1 = gcnew OpenFileDialog();
         if (OpenFiledialogVariable1->ShowDialog()==System::Windows::Forms::DialogResult::OK)
         {
         if ((myStream = OpenFiledialogVariable1->OpenFile()) != nullptr)

             String^ myfilename = OpenFiledialogVariable1->InitialDirectory + OpenFiledialogVariable1->FileName;
             MessageBox::Show(myfilename); // ERROR shown in this line
             myStream->Close();

         }

     }

我试过 ans 搜索 msdn 文档,google 没有找到任何相关内容。我想我确实包含了字符串 class 所需的头文件,但仍然不起作用。感谢任何帮助。

你只是缺少大括号:

if ((myStream = OpenFiledialogVariable1->OpenFile()) != nullptr) { // added

         String^ myfilename = OpenFiledialogVariable1->InitialDirectory + OpenFiledialogVariable1->FileName;
         MessageBox::Show(myfilename); // ERROR shown in this line
         myStream->Close();
} // added

由于没有大括号,myFilename 声明对其下的语句不可见,它位于不同的(外部)范围内。