一般在C#中造成“未將對象引用設置到對象的實例”錯誤都是控件名稱與codebehind里面的沒有對應,對于初學編程的人,而在編碼中重復定義也會造成這種問題的產(chǎn)生。
以下是一個例子:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace weste
{
public class study : System.Web.UI.Page
{
public string[] c;
private void Page_Load(object sender, System.EventArgs e)
{
aaa();
bbb();
}
private void aaa()
{
string[] c=new string[3];
//c=new string[3];
c[0]="我們在";
c[1]="西部E網(wǎng)";
c[2]="學習C#";
}
private void bbb()
{
Response.Write(c[0]+c[1]+c[2]);
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
運行后會我們發(fā)現(xiàn),會有以下錯誤產(chǎn)生:
異常詳細信息: System.NullReferenceException: 未將對象引用設置到對象的實例。
源錯誤:
行 33: private void bbb()
行 34: {
行 35: Response.Write(c[0]+c[1]+c[2]);
行 36: }
行 37:
很多初學者都會有疑問:我已經(jīng)定義了變量 public string[] c,而且也進行了實例化 string[] c=new string[3],但是為什么在調(diào)用數(shù)組c的時候還會報“未將對象引用設置到對象的實例”的錯誤呢?
問題出在string[] c=new string[3]這里,在前面已經(jīng)將數(shù)組c定義后,在函數(shù)aaa()中再次將數(shù)組定義,造成前面定義的數(shù)組不能實例化。只需要將 string[] c=new string[3]修改成 c=new string[3] 即可。