仅当 LiteralControl 尚未分配文本时,我如何才能覆盖 LiteralControl 的文本?
How can I overwrite a LiteralControl's text only if the LiteralControl has not already had text assigned to it?
此代码:
private void btnSave_Click(object sender, EventArgs e)
{
LiteralControl message = null;
try
{
message = new LiteralControl();
Controls.Add(message);
ConditionallyCreateList();
SaveInputToList();
List<ListColumns> listOfListItems = ReadFromList();
GeneratePDF(listOfListItems); // using iTextSharp
}
catch (Exception ex)
{
message.Text = String.Format("Exception occurred: {0}", ex.Message);
}
if (message.Text.Length <= 1)
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
}
...导致 NRE,在 "if (message.Text.Length <= 1)" 行抱怨。我想要完成的只是分配给消息的文本值,如果它还没有包含异常消息的话。
Message.Text 可能为空。您可以执行以下操作:
if (message.Text == null || message.Text.Length <= 1)
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
如果你稍微清理一下你的语义(message.Text == "" 是什么意思?)以下将起作用:
if (message.Text.IsNullOrEmpty())
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
try
的成功分支和失败分支都需要message
,所以需要提前创建:
private void btnSave_Click(object sender, EventArgs e)
{
LiteralControl message = new LiteralControl();
try
{
Controls.Add(message);
ConditionallyCreateList();
SaveInputToList();
List<ListColumns> listOfListItems = ReadFromList();
GeneratePDF(listOfListItems); // using iTextSharp
message.Text = "Saving the data and converting it to a PDF has been successful";
}
catch (Exception ex)
{
message.Text = String.Format("Exception occurred: {0}", ex.Message);
}
}
此代码:
private void btnSave_Click(object sender, EventArgs e)
{
LiteralControl message = null;
try
{
message = new LiteralControl();
Controls.Add(message);
ConditionallyCreateList();
SaveInputToList();
List<ListColumns> listOfListItems = ReadFromList();
GeneratePDF(listOfListItems); // using iTextSharp
}
catch (Exception ex)
{
message.Text = String.Format("Exception occurred: {0}", ex.Message);
}
if (message.Text.Length <= 1)
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
}
...导致 NRE,在 "if (message.Text.Length <= 1)" 行抱怨。我想要完成的只是分配给消息的文本值,如果它还没有包含异常消息的话。
Message.Text 可能为空。您可以执行以下操作:
if (message.Text == null || message.Text.Length <= 1)
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
如果你稍微清理一下你的语义(message.Text == "" 是什么意思?)以下将起作用:
if (message.Text.IsNullOrEmpty())
{
message.Text = "Saving the data and converting it to a PDF has been successful";
}
try
的成功分支和失败分支都需要message
,所以需要提前创建:
private void btnSave_Click(object sender, EventArgs e)
{
LiteralControl message = new LiteralControl();
try
{
Controls.Add(message);
ConditionallyCreateList();
SaveInputToList();
List<ListColumns> listOfListItems = ReadFromList();
GeneratePDF(listOfListItems); // using iTextSharp
message.Text = "Saving the data and converting it to a PDF has been successful";
}
catch (Exception ex)
{
message.Text = String.Format("Exception occurred: {0}", ex.Message);
}
}