App下載

C# 編程語(yǔ)言學(xué)習(xí)系列(一)

玹三小角 2021-12-06 15:36:17 瀏覽數(shù) (2995)
反饋

學(xué)習(xí)任何知識(shí)之前,不妨先問(wèn)問(wèn)自己學(xué)這個(gè)知識(shí)的目的是為了什么?有了既定的目的,那么學(xué)習(xí)起來(lái)才會(huì)充滿干勁。

筆者學(xué)習(xí)C#的目的,一是為了擁有一個(gè)屬于自己的游戲,二是提升自己的多元能力。

OK,接下來(lái)就開(kāi)啟學(xué)習(xí)C#之路?。▋?nèi)容中也許因?yàn)榱私獠欢?,多少存在一些錯(cuò)誤,還請(qǐng)大家多多指正?。?/p>

一、C# 基本概述

1、C# 是什么?

C# (讀作?See Sharp?)是由 C/C++ 衍生出來(lái)的一門(mén)新式編程語(yǔ)言,不僅面向?qū)ο?,而且還是類(lèi)型安全。開(kāi)發(fā)人員利用 C# 能夠生成在 .Net 中運(yùn)行的多重安全可靠的應(yīng)用程序。

C# 是面向?qū)ο蟮?、面向組件的編程語(yǔ)言。其提供了相應(yīng)的語(yǔ)言構(gòu)造來(lái)直接支持這些概念,讓 C# 成為一門(mén)非常自然的語(yǔ)言,可以用來(lái)創(chuàng)建和使用軟件組件。C# 本質(zhì)上就是面向?qū)ο蟮恼Z(yǔ)言。

2、C# 能做什么?

(1)做游戲

市面上比較流行的兩款游戲引擎 U3D 和 UE4。其中基于 U3D 開(kāi)發(fā)的游戲,基本上都是用 C# 語(yǔ)言寫(xiě)得。

(2)Windows 窗體應(yīng)用程序

(3)Web 服務(wù)

(4)客戶端-服務(wù)器應(yīng)用程序

(5)移動(dòng)端應(yīng)用程序

and so on…

3、.NET 體系結(jié)構(gòu)

所有的編程語(yǔ)言都需要相應(yīng)的環(huán)境,才能夠運(yùn)行。例如,Java 是一門(mén)跨平臺(tái)語(yǔ)言,這是因?yàn)樗詭?Java 虛擬機(jī),只要配置好,那么就可以在 Windows、Linux等操作系統(tǒng)下運(yùn)行。C# 也是一樣的,需要一個(gè)可以承載程序運(yùn)行的運(yùn)行環(huán)境,而這個(gè)運(yùn)行環(huán)境就是 .NET。

一般情況下,Windows 系統(tǒng)中都裝有 .NET 環(huán)境,這是因?yàn)?Windows 中的大部分軟件都是基于 C 語(yǔ)言系列開(kāi)發(fā)的,因此需要 .NET 環(huán)境來(lái)支持運(yùn)行。所以在 Windows 上安裝好相應(yīng)的軟件,就可以開(kāi)始輸出?Hello World!?

.NET 是名為公共語(yǔ)言運(yùn)行時(shí)(CLR)的虛執(zhí)行系統(tǒng)和一組類(lèi)庫(kù)。

CLR 是微軟對(duì)公共語(yǔ)言基礎(chǔ)結(jié)構(gòu)(CLI)國(guó)際標(biāo)準(zhǔn)的實(shí)現(xiàn)。

CLI是創(chuàng)建執(zhí)行和開(kāi)發(fā)環(huán)境的基礎(chǔ),語(yǔ)言和庫(kù)可以在其中無(wú)縫地協(xié)同工作。

二、輸出第一個(gè)程序

接下來(lái)通過(guò)所有學(xué)習(xí)所有編程語(yǔ)言都要經(jīng)歷的第一步,使用程序,輸出?Hello World?。通過(guò)這一段小小的程序,來(lái)了解一下 C# 程序的結(jié)構(gòu)。

using System;

namespace Study001
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

程序輸出:

在這里插入圖片描述

結(jié)構(gòu)解析:

1、以上的 C# 程序包含的部分:

(1)?using System;? 引用命名空間。

(2)?namespace Study001命名空間聲明。

(3)?class Program? 類(lèi)。

(4)?static void Main(string[] args) ?程序運(yùn)行入口方法。

(5)?Console.WriteLine("Hello World!");? 程序語(yǔ)句。

2、各部分解析(經(jīng)過(guò)嘗試的)

在這里插入圖片描述

下面的一個(gè)程序即對(duì)應(yīng)圖中的一個(gè)紅框。

(1)一個(gè)程序中可以擁有多個(gè) ?using? 語(yǔ)句。有點(diǎn)類(lèi)似于 Python 語(yǔ)言中的 import,導(dǎo)入相應(yīng)命名空間,就可以使用該命名空間中的類(lèi)型。

(2)一個(gè)程序中可以使用多個(gè) ?namespace? 來(lái)命名多個(gè)命名空間。

(3)一個(gè)程序中可以聲明多個(gè)類(lèi)。

using System;

namespace Study001
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("I am king!");
        }
    }

    class ClassTwo
    {
        static void printwho()
        {
            Console.WriteLine("我是屬于ClassTwo");
        }
    }
}

namespace Study002
{
    class ClassThree
    {
        static void printme()
        {
            Console.WriteLine("我是屬于ClassThree");
        }
    }
}

以上程序可以成功輸出結(jié)果:

在這里插入圖片描述

(4)一個(gè)程序中只能有一個(gè) Main 主方法。如果定義了多個(gè)主方法,會(huì)產(chǎn)生以下編譯錯(cuò)誤。

在這里插入圖片描述

三、總結(jié)

C# 學(xué)習(xí)系列的第一篇文章就到此結(jié)束了。在這個(gè)學(xué)習(xí)過(guò)程中,對(duì)于筆者而言,有收獲,但同時(shí)也有疑慮。

例如:

(1)一個(gè)程序中既然可以有多個(gè)命名空間和類(lèi),那么如何將它們聯(lián)系在一起?

(2)一個(gè)程序中命名多個(gè)命名空間和類(lèi),這樣的操作值得推薦嗎?


C#

0 人點(diǎn)贊