Delphi
被Broland成為windows平台上的最終的完整解決方案
Delphi
集成了Delphi
C #
Microsoft
NET Framework and Win
支持圖形用戶接口( GUI )
Web開發
數據庫
富客戶端應用程序( rich
client applications )等多種開發開發語言
同時還集成了軟件生命周期管理( ALM )功能及開發者生產力促進功能(即RAD)
在Delphi
中
所提供的IDE使windows平台的開發更快速
更容易
並且新的版本能更好的支持Win
標准
同時還提供了一個世界級水平的編譯器和調試器
他還提供了大量的可重用的組件
一個強大的代碼生成向導
可以幫你更快的產生你所想要的代碼
Delphi
還 包括了嶄新的第二代企業核心對象技術 ( Borland Enterprise Core Objects II即ECO II )
ECO II 為模型驅動的
NET企業應用提供了開發框架
Delphi
還能協助開發團隊在創建新應用的同時
維護及改進現有的Windows應用
總之
憑借Delphi
開發人員既能繼續改進Win
應用
又能先行采用
NET及ASP
NET
是一款值得使用的開發工具
這篇文章中我們就在Delphi
開發環境中體驗一下
Borland為我們提供的C# 開發功能
閒話少敘
還是趕快進入我們的C#體驗之旅吧!
先打開Delphi
開發環境
點擊菜單中的
file
在顯示的下拉菜單中選擇
New
如下圖所示
鼠標點擊
new
會在右面會在右面出現一個下級菜單
如下圖所示
我們在其中選擇
other
緊接著回彈出
new Items
對話框
如下圖所示
我們在其中的左邊選擇
c # Projects
並在右面
選擇
Console Application
點擊
ok
按鈕
會出現
New Application
對話框
在其中
Name:
中添加一個工程的名字
在
Location:
項中添加保存工程的位置
可以點擊後面的
按鈕
在彈出的保存對話中
選擇保存位置
如下圖所示
在
New Application
對話框中點擊
ok
按鈕
進入Delphi
的編程環境
下圖顯示的是其中的項目窗口中的內容
因為我們在
New Application
對話框中沒有改變工程的名稱
使用了默認的
Project
所以在此顯示為
Project
exe
(我們在這裡將工程命名為
colcsharpip
所以顯示為
colcsharpip
)
AssemblyInfo
cs
是與系統有關的文件
Class
cs
則是我們要添加代碼的地方
默認的情況下
在編譯器的正中間就應該顯示編譯器給我們添加的代碼
如下所示
using System ;
namespace Project
{
/// <summary>
/// Summary description for Class
/// </summary>
class Class
{
/// <summary>
/// The main entry point for the application
/// </summary>
[STAThread]
static void Main ( string [ ] args )
{
//
// TODO : Add code to start application here
//
}
}
}
說明
(
)其中using System
表示使用System庫
就像用delphi 程序中開頭的
uses
System
Drawing
System
Collections
System
ComponentModel
System
Windows
Forms
System
Data ;
功能是一樣的
(
)namespace Project
中的namespace 關鍵字表示一個名空間
(
)class Class 表示建立一個名字為Class的類
(
)static void Main ( string [ ] args )才是程序的入口函數
下面我們建立自己的程序
在程序中我們要實現的功能是
再輸入主機名字時
顯示該主機的ip地址
並顯示相關的信息
如ip地址協議簇
以及ip協議的版本
步驟如下
(
)為了實現以上功能要在文件開頭添加如下庫的引用
代碼如下
//添加所要用到的庫文件
using System
Net ;
using System
Net
Sockets ;
using System
Text
RegularExpressions ;
(
)在static void Main ( string [ ] args ) { }中添加如下代碼
//定義一個字符串型的變量
用來保存主機的名稱
string server = null ;
// 定義了一個用戶輸入的規則
// 用來檢查用戶的輸入
// 他只允許用戶輸入
~
個字符長度的字符串
Regex rex = new Regex ( @
^ [ a – z A – Z ] \ w {
} $
) ;
if ( args
Length <
) //如果輸入的字符長度小於
{
//如果沒有主機名稱被作為程序的參數輸入
// 那麼就一當前主機的名稱作為默認的主機
server = Dns
GetHostName ( ) ; //使用Dns類的GetHostName方法得到主機名稱
並保存在server變量中
Console
WriteLine (
Using current host :
+ server ) ;
//使用Console類的WriteLine方法
在控制面板中輸出信息
}
else //如果輸入的字符長度大於
{
server = args [
] ; //得到參數中的值
並保存在server變量中
if ( ! ( rex
Match ( server ) )
Success ) //如果輸入的格式不對
{
Console
WriteLine (
Input string format not allowed
) ; //顯示提示信息
return ;
}
// 設置顯示所用的文字類型
System
Text
ASCIIEncoding ASCII = new System
Text
ASCIIEncoding ( ) ;
// 得到主機相關信息
IPHostEntry heserver = Dns
Resolve ( server ) ;
//列舉主機地址列表
foreach (IPAddress curAdd in heserver
AddressList )
{
// 顯示主機所支持的地址協議簇類型
// 如果這個主機所支持的地址協議簇類型是IPv
enabled
那麼它的值為
InternNetworkV
// 如果這個主機所支持的地址協議簇類型也是IPv
enabled
那麼它的值為 InterNetwork
Console
WriteLine (
AddressFamily :
+ curAdd
AddressFamily
ToString ( ) ) ;
// 顯示IPV
地址中的ScopeId 屬性
if ( curAdd
AddressFamily
ToString ( ) == ProtocolFamily
InterNetworkV
ToString ( ) )
Console
WriteLine (
Scope Id :
+ curAdd
ScopeId
ToString ( ) ) ;
// 使用標准格式顯示主機的IP地址
// 如果是IPv
格式將被顯示為點分格式
// 如果是IPv
格式將被現實為冒號分割的十六進制方式
Console
WriteLine (
Address :
+ curAdd
ToString ( ) ) ;
// 按字節格式顯示主機的IP地址
Console
Write (
AddressBytes :
) ;
Byte[] bytes = curAdd
GetAddressBytes ( ) ;
for (int i =
; i < bytes
Length ; i + + )
{
Console
Write ( bytes [ i ] ) ;
}
Console
WriteLine (
\ r \ n
) ;
}
// 顯示主機是否支持IPv
和IPv
Console
WriteLine (
\ r \ n SupportsIPv
:
+ Socket
SupportsIPv
) ;
Console
WriteLine (
SupportsIPv
:
+ Socket
SupportsIPv
) ;
if ( Socket
SupportsIPv
) //如果支持IPv
{
// 顯示IPv
種偵聽的地址
Console
WriteLine (
\ r \ n IPv
Any :
+ IPAddress
IPv
Any
ToString ( ) ) ;
// 顯示主機的回送地址
Console
WriteLine (
IPv
Loopback :
+ IPAddress
IPv
Loopback
ToString ( ) ) ;
Console
WriteLine (
IsLoopback ( IPv
Loopback ) :
+ IPAddress
IsLoopback ( IPAddress
IPv
Loopback ) ) ;
}
//顯示IPv
主機的回送地址
Console
WriteLine (
IsLoopback ( Loopback ) :
+ IPAddress
IsLoopback ( IPAddress
Loopback ) ) ;
//輸入任意鍵程序繼續
Console
Read ( ) ;
}
顯示結果如下圖所示
體會
總體感覺
Delphi
中的提供了多種語言編寫程序的平台
但C#編譯的速度還比較快
不想再C++ Builder中的兩種語言所產生的編譯速度超慢的現象
可見
Borland工程師對於編譯速度還是用心了
不過就是在啟動時
因為載入的東西太多
啟動速度讓人著急
From:http://tw.wingwit.com/Article/program/Delphi/201311/8443.html