我有一段代码:
private void btnOk_Click(object sender, EventArgs e)
{
if (rdoRss.Checked)
{
RssFeed newFeed = new RssFeed();
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed);
}
if (rdoAtom.Checked)
{
AtomFeed newFeed = new AtomFeed();
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed);
}
main.UpdateFeedsView();
this.Close();
}
如果这样,没有错误,但代码冗余,我要改成如下:
private void btnOk_Click(object sender, EventArgs e)
{
if (rdoRss.Checked)
{
RssFeed newFeed = new RssFeed();
}
if (rdoAtom.Checked)
{
AtomFeed newFeed = new AtomFeed();
}
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed); main.UpdateFeedsView();
this.Close();
}
此时编译就会出错,说找不到newFeed,我在if语句定义了,以前还出现过类似的情况,是在switch语句中给变量赋值,却说变量是空值(null)这是为什么?
private void btnOk_Click(object sender, EventArgs e)
{
if (rdoRss.Checked)
{
RssFeed newFeed = new RssFeed();
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed);
}
if (rdoAtom.Checked)
{
AtomFeed newFeed = new AtomFeed();
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed);
}
main.UpdateFeedsView();
this.Close();
}
如果这样,没有错误,但代码冗余,我要改成如下:
private void btnOk_Click(object sender, EventArgs e)
{
if (rdoRss.Checked)
{
RssFeed newFeed = new RssFeed();
}
if (rdoAtom.Checked)
{
AtomFeed newFeed = new AtomFeed();
}
newFeed.DisplayName = txtName.Text;
newFeed.Url = txtUrl.Text;
newFeed.Description = txtDesc.Text;
main.manager.profile.Feeds.Add(newFeed); main.UpdateFeedsView();
this.Close();
}
此时编译就会出错,说找不到newFeed,我在if语句定义了,以前还出现过类似的情况,是在switch语句中给变量赋值,却说变量是空值(null)这是为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货