変数 "doc" は、if ステートメント以外のメソッド内の他の場所にはアクセスできないため、if doc==null は失敗します。これは、"doc" のスコープが、それが定義されている if ステートメント内にのみあるためです....方法私はこの問題に対処しますか?public を追加すると、エラーが増えるだけです..
protected void Page_Load(object sender, EventArgs e)
{
try
{
string id, type, UniqueColID;
string FilePath = Server.MapPath("~").ToString();
type = Request.QueryString["type"];
if (type.Equals("template"))
{
MergeDocument template = new MergeDocument(FilePath + @"\Template\MVCTemplate.pdf");
template.DrawToWeb();
}
else
{
id = Request.QueryString["id"];
UniqueColID = DBFunctions.DBFunctions.testExist(id);
if (DBFunctions.DBFunctions.FlagDriverPrintOnly == false)
{
MergeDocument doc = PDF.LongFormManipulation.generatePDF(id, type, FilePath, UniqueColID);
}
else if (DBFunctions.DBFunctions.FlagDriverPrintOnly == true)
{
MergeDocument doc = PDF.LongFormManipulation.generatePDFDriverOnly(id, type, FilePath, UniqueColID);
}
DBFunctions.DBFunctions.FlagDriverPrintOnly = false;
if (doc == null)
doc = new MergeDocument(FilePath + @"\Template\MVCTemplate.pdf");
doc.DrawToWeb();
}
}
catch(Exception err)
{
MessageBox("Creating PDF file was not successful. " + err.ToString());
}
より高いレベルで宣言しようとしましたが、それでも同じエラーが発生します:
**Use of unassigned local variable 'doc' -->>>at: if (doc==nul)**
MergeDocument=null; を実行した後。より高いレベルでは、新しいエラーが発生します:
System.NullReferenceException: Object reference not set to an instance of an object. at GeneratePDF.Page_Load(Object sender, EventArgs e)
このエラーは"if (type.Equals("template"))"