2012-05-23 67 views
1

在stringbuilder中將string.format放入時出現「object reference error」。我有下面的代碼在C#2.0在StringBuilder中添加String.Format時獲取「Object Reference Error」

public const string PageLinkGoogleMarkup = "<link rel=\"alternate\" hreflang=\"{0}\" href=\"{1}www.mysite.com{2}{3}\" />\r\n"; 

現在,當我加入這HtmlTextWriter的它工作正常,如下圖所示:

HtmlTextWriter writer (Object); 
writer.write(string.format(PageLinkGoogleMarkup,str[1],header,links,querystr)); //This works perfect 

當我嘗試添加這上面的代碼來代替的StringBuilder的HtmlTextWriter的提示錯誤:

由於存在大循環,所以我決定去與附加一切StringBuilder的第一,並在使用writer.Write(在一堆整個HTML)最後的渲染,請在下面的代碼

StringBuilder sb = new StringBuilder(); 
sb.Append(string.format(PageLinkGoogleMarkup,str[1],header,links,querystr)); //here i get object reference error 

writer.Write(sb.ToString()); 

請建議!!

謝謝。

+0

您的意思是「對象引用未設置爲對象的實例」? –

+0

是的,「沒有設置對象實例的對象引用」 –

回答

0

以下其中一個變量是空當你在StringBuilder的代碼中使用(但是當你在工作代碼中使用它是不是null):

str (or the item in index [1]) 
header 
links 
querystr 

使用調試器來找出哪一個爲空,修復該問題,並且代碼應該正常工作。

+0

我不認爲這是問題,因爲它與writer.write..len..show完美一致 –

+0

您沒有提供足夠的代碼來完全確定哪一個是空的,但我相當確信這是問題所在。 –

+0

請參閱onething「querystr」可以爲空但不爲空,因爲如果當前頁面有查詢字符串,那麼只有這個變量纔會有值,這是否會導致問題 –

相關問題