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

Delphi 2005 開發 C# 應用程式:.NET 整合開發環境體驗與 DNS 解析範例

     編輯:Delphi

Delphi 2005 整合 Win32、.NET、C#、ECO II 於單一 IDE,號稱「Windows 平台最終完整解決方案」。本文實測在 Delphi 2005 中建立 C# Console 專案,撰寫 DNS 解析程式 (輸入主機名顯示 IP、AddressFamily、IPv4/IPv6 支援),展示 C# 編譯速度、IDE 整合度與啟動效能體驗。

建立 C# 專案步驟

  1. File → New → Other → C# Projects → Console Application。
  2. 專案名 ColCSharpIP1,產生 Class.cs (邏輯) 與 AssemblyInfo.cs (屬性)。
  3. 預設程式進入點:static void Main(string[] args)。

核心 C# 代碼:DNS 解析與 IP 詳細資訊


using System;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;

namespace ColCSharpIP1
{
  class Class
  {
    [STAThread]
    static void Main(string[] args)
    {
      string server = null;
      // 輸入驗證:2~40 字元字母數字
      Regex rex = new Regex(@"^[a-zA-Z]\w{1,39}$");

      if (args.Length < 1) {
        server = Dns.GetHostName(); // 預設本機
        Console.WriteLine("Using current host: " + server);
      } else {
        server = args[0];
        if (!rex.Match(server).Success) {
          Console.WriteLine("Input string format not allowed.");
          return;
        }
      }

      ASCIIEncoding ascii = new ASCIIEncoding();
      IPHostEntry host = Dns.Resolve(server); // 取得所有 IP

      foreach (IPAddress ip in host.AddressList) {
        Console.WriteLine("AddressFamily: " + ip.AddressFamily);
        if (ip.AddressFamily.ToString() == "InterNetworkV6")
          Console.WriteLine("ScopeId: " + ip.ScopeId);
        Console.WriteLine("Address: " + ip.ToString()); // 標準格式
        Console.Write("AddressBytes: ");
        foreach (byte b in ip.GetAddressBytes()) Console.Write(b + " ");
        Console.WriteLine("\r\n");
      }

      Console.WriteLine("SupportsIPv4: " + Socket.SupportsIPv4);
      Console.WriteLine("SupportsIPv6: " + Socket.SupportsIPv6);
      if (Socket.SupportsIPv6) {
        Console.WriteLine("IPv6Any: " + IPAddress.IPv6Any);
        Console.WriteLine("IPv6Loopback: " + IPAddress.IPv6Loopback);
        Console.WriteLine("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback));
      }
      Console.WriteLine("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback));
      Console.Read();
    }
  }
}

執行結果範例

AddressFamily: InterNetwork
Address: 192.168.1.100
AddressBytes: 192 168 1 100

AddressFamily: InterNetworkV6
ScopeId: 0
Address: fe80::20c:29ff:fe12:3456%4
AddressBytes: 254 128 0 0 0 0 0 0 0 0 0 0 2 12 47 86

SupportsIPv4: True
SupportsIPv6: True
IPv6Any: ::
IPv6Loopback: ::1
IsLoopback(IPv6Loopback): True
IsLoopback(Loopback): True

Delphi 2005 C# 體驗總結

維度體驗
C# 編譯速度快,明顯優於 C++Builder 雙語言編譯
IDE 啟動速度慢,載入 Win32/.NET 双运行时、多套設計器
程式碼編輯語法高亮、智慧感知、重構 (Rename/Extract) 完整支援 C#
偵錯混合模式偵錯 (Win32 + .NET) 可在同一 Session 斷點
專案管理Project Group 可同時包含 Win32 EXE、C# DLL、ASP.NET Web
部署需目標機裝 .NET Framework 1.1/2.0,Delphi 2005 可產生合併安裝包

適用場景建議

  • 遷移舊 Delphi 專案至 .NET:共用業務邏輯組件、漸進式重寫。
  • 混合團隊:Delphi 開發 Win32 核心、C# 開發 Web/服務層,同一 IDE 協作。
  • 快速原型:用 C# 驗證演算法、呼叫 .NET Framework 庫 (如 System.Net、System.XML),再移植回 Win32。

雖然 Delphi 2005 後續版本 (2006、Turbo、2007、2009、XE 系列) 已逐步分離 Win32 與 .NET 人格,但「單一 IDE 多語言」的探索為後來的 RAD Studio 奠定基礎。對於維護 Delphi 2005 專案的團隊,理解其 C# 整合模式仍有參考價值。

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