作為ASP.NET開發人員必須養成的編程習慣

來源:互聯網
上載者:User

讓我們的程式寫得更加平易近人,更加生動對我們的編程是大有益處的。對我們的程式學習也能起到事半功倍的作用。編程過程中遵守的不成文的標準,對於我們和他人的交流和自己的再學習都是有益無害的。畢竟有時我們寫的程式不是只給自己看的,也不是一時興起,不管以後。 好的編碼可使原始碼的可讀性強且意義清楚,與其他語言約定相一致,並且儘可能直觀。

1.錯誤(以外)的處理

程式健壯性最基本要求就是程式錯誤的處理與捕捉,在ASP.NET中,錯誤的處理有和其他程式設計語言一樣的機制,可以使用Try…Catch… Finally等方式,這一點和ASP相比具有較大的進步。而且,使用這些錯誤處理方法,可以大大提高程式的可讀性和程式調試速度,在這幾個優勢結合的情況下,我們更加應該注意這一點。

2.字串的處理

網頁設計中,字串的處理幾乎是最常見的了。使用ASP.NET以後,字串的處理比ASP的速度快,而且,在ASP.NET中,專門增加一個字串處理類StringBulider,使用這個類可以完成一些常見的字串操作,而最主要的,使用StringBuilder可以大大提高字串處理速度。

在ASP.NET中,最常見的就是使用“&”來串連兩個字串:

以下為引用的內容:

Dim myOutputString As String = "My name is"
Dim myInputString As String = " Alex"
myOutputString = myOutputString & myInputString
Response.Write(myoutputString)

現在,我們來看看StringBuilder的使用,在使用StringBuilder的時候,我們對字串可以做一些基本的操作,比如Append、Replace、Insert、Remove等,現在我們來看具體舉例。

(1)StringBuilder中Append的使用

Append和其他語言的Append一樣,就是在字串最後增加其他字元。

以下為引用的內容:

http://www.CodeHighlighter.com/
-->Dim sb as StringBuilder = New StringBuilder()
sb.append( "
")
sb.Append( dt.Rows(i).Item(k, DataRowVersion.Current).toString())
sb.Append( "

")
Dim strOutput as String = sb.ToString()
lblCompany.Text = strOutput

在以上的程式中,用Append方法實現了一個表格的輸出,需要注意的一點是,StringBulider必須首先使用ToString()方法將其轉化為String類型才可以直接輸出。在以上的舉例中,我們看到的全部是Append一個直接的字串,其實,這個方法有一個很方便的功能,那就是可以直接 Append其他類型的變數,比如可以直接Appemd一個Integer類型的數值,當然,我們輸出以後自動轉化為一個字串:

以下為引用的內容:

http://www.CodeHighlighter.com/
-->Sub Page_Load(Source As Object, E As EventArgs)
Dim sb As System.Text.StringBuilder
Dim varother As Integer
varother=9999
sb =new System.Text.StringBuilder()
sb.append("可以Append其他類型:")
sb.append(varother)
Response.write(sb.toString())
End Sub

(2)字串中其他方法的使用

我們還可以使用其他方法,我們來看看常見的:

Insert方法,可以在指定位置插入其他字元,使用方法:Insert(插入位置,插入字元);

Remove方法,可以在指定位置刪除指定字數字元,使用方法:Remove(其實位置,字元數);

Replace方法,可以替換指定字元,使用方法:replace(被替換字串,替換字串)

3.資料庫連結Connection和DataReader的關閉

在使用ASP編程的時候,我們就已經知道,在使用資料庫連接以後,一定要將串連關閉,然後設定為NoThing。在Asp.NET中,我們仍然需要這樣使用,不過,在ASP.NET中,由於使用了ADO.NET,所以,在一些相關的處理方面,實際還是有一些細微的區別,而這些區別,往往也就是我們設計的時候最需要注意的。現在,我們通過舉例,來看看在常見的ADO.NET操作中,需要注意哪些問題。

(1)舉例一

以下為引用的內容:

Dim myConnection As SqlConnection = 
new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand =
new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
Dim myDataReader As SqlDataReader
Try
myConnection.Open()
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DropDownList1.DataSource = myDataReader
DropDownList1.DataBind()
Catch myException As Exception
Response.Write("An error has occurred: " & myException.ToString())
Finally
If Not myDataReader Is Nothing Then
\\\'關閉DataReader
myDataReader.Close()
End If
End Try

在以上的舉例中,我們注意到,這裡只關閉了DataReader,並沒有關閉Connection。為什麼呢?仔細觀察以上的ExecuteReader方法,原來,設定了ExecuteReader參數,當執行完ExecuteReader以後,會自動關閉Connection。所以,這樣設定以後,就沒有必要再手動關閉Connection了。

(2)舉例二

以下為引用的內容:

http://www.CodeHighlighter.com/
-->Dim myConnection As SqlConnection =
new SqlConnection(ConfigurationSettings.AppSettings("DSN_pubs"))
Dim myCommand As SqlCommand =
new SqlCommand("Select pub_id, pub_name From publishers", myConnection)
Try
myConnection.Open()
DropDownList1.DataSource = myCommand.ExecuteReader()
DropDownList1.DataBind()
Catch myException As Exception
Response.Write("An error has occurred: " & myException.ToString())
Finally
If Not myConnection Is Nothing AndAlso
((myConnection.State And ConnectionState.Open) = ConnectionState.Open) Then
myConnection.Close()
End If
End Try

在以上的舉例中,我們發現,居然沒有關閉DataReader。為什麼呢?其實上面的代碼中,沒有直接產生DataReader對象,當然也就無從關閉了。需要注意一點的是,在關閉Connection之前,程式首先判斷Connection是否已經開啟,如果沒有開啟,也就沒必要關閉了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.