首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ASP.NET 頁面中 C# 與 VB.NET 程式碼內嵌語法差異比較

     編輯:關於C語言

同一個 ASP.NET 頁面,兩種語言寫法

經典 ASP.NET WebForms 頁面(.aspx)支援內嵌伺服器端程式碼區塊(<% ... %>),C# 與 VB.NET 在控制流程語法上有明顯差異。

C# 版本


<%@ Page Language="C#" %>
<html>
<body>
  <form method="post">
    <h3>Name: <input id="Name" type="text" /></h3>
    <select id="Category">
      <option>psychology</option>
      <option>business</option>
      <option>popular_comp</option>
    </select>
    <input type="submit" value="Lookup" />

    <% for (int i = 0; i < 8; i++) { %>
      <font size="<%=i%>"> Welcome to ASP.NET </font><br />
    <% } %>
  </form>
</body>
</html>

VB.NET 版本


<%@ Page Language="VB" %>
<html>
<body>
  <form method="post">
    <h3>Name: <input id="Name" type="text" /></h3>
    <select id="Category">
      <option>psychology</option>
      <option>business</option>
      <option>popular_comp</option>
    </select>
    <input type="submit" value="Lookup" />

    <% Dim I As Integer
       For I = 0 To 7 %>
      <font size="<%=I%>"> Welcome to ASP.NET </font><br />
    <% Next %>
  </form>
</body>
</html>

關鍵差異對照表

結構C#VB.NET
頁面指示詞Language="C#"Language="VB"
區域變數宣告在 for 迴圈初始化部份 int i = 0獨立 Dim I As Integer 陳述式
For 迴圈for (int i=0; i<8; i++) { ... }For I = 0 To 7 ... Next
區塊分隔大括號 { }關鍵字 For ... Next, If ... End If
輸出運算式<%=i%><%=I%>(相同)

深度解析

C# 風格:C 家族語法

  • 以大括號界定範圍,視覺上明確。
  • 迴圈變數可在 for 宣告中初始化,作用域限於迴圈內。
  • 分號結束陳述式,適合壓縮成單行。

VB.NET 風格:自然語言導向

  • 關鍵字英文單字完整(Dim, To, Next),可讀性強。
  • 變數宣告與使用分離,符合傳統 BASIC 風格。
  • 不需分號,換行即為陳述式結束。

內嵌程式碼區塊類型

標記用途範例
<% ... %>執行陳述式(控制流程、變數宣告)<% for(...) { %>
<%= ... %>輸出運算式結果(相當於 Response.Write)<%=i%>
<%: ... %>輸出並 HTML 編碼(ASP.NET 4+)<%: userInput %>
<%# ... %>資料繫結運算式(Eval, Bind)<%# Eval("Name") %>
<%@ ... %>頁面/控制項指示詞<%@ Page Language="C#" %>

現代建議:避免內嵌程式碼

雖然了解語法差異有助於維護舊專案,但現代 ASP.NET 開發(MVC, Razor Pages, Blazor)強烈建議:

  1. 分離關注點:邏輯放在 Controller/PageModel/Component,視圖只負責呈現。
  2. 使用 Razor 語法:@for (int i=0; i<8; i++) { <div>@i</div> },編譯期檢查、IntelliSense 完整支援。
  3. 避免 Spaghetti Code:HTML 與伺服器程式碼交織難以維護、測試與重構。

結語

C# 與 VB.NET 在 ASP.NET 內嵌區塊中的差異,本質上反映了兩種語言的核心語法哲學。新專案請擁抱 Razor 與現代架構;維護舊專案時,熟悉這些差異能讓你快速切換語言語境,避免語法錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved