国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

unity的C#學(xué)習(xí)——命名空間的定義與訪問(wèn)、using語(yǔ)句的常見(jiàn)用法

這篇具有很好參考價(jià)值的文章主要介紹了unity的C#學(xué)習(xí)——命名空間的定義與訪問(wèn)、using語(yǔ)句的常見(jiàn)用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


命名空間

在C#中,命名空間(Namespace)是一種將類和其他相關(guān)類型組織在一起的方式??梢詫⒚臻g看作是一個(gè)容器,用于管理和組織類和其他類型。通過(guò)將相關(guān)的類型組織在一起,可以使代碼更加清晰和易于維護(hù)。

命名空間的主要目的是為了避免名稱沖突,使得開(kāi)發(fā)人員可以使用相同名稱來(lái)命名不同的類型。

1、命名空間的定義與訪問(wèn)

命名空間的定義是以關(guān)鍵字 namespace 開(kāi)始,后跟命名空間的名稱,如下所示:

// 定義命名空間
namespace namespace_name
{
   // 代碼聲明
}

// 嵌套定義命名空間
namespace namespace_name1 
{
   // 代碼聲明
   namespace namespace_name2 
   {
     // 代碼聲明
   }
}
  • C#中的命名空間可以包含其他命名空間和類,即命名空間可以嵌套,并且可以在同一個(gè)文件中定義多個(gè)命名空間。
  • 在命名空間中定義的類型可以通過(guò)完全限定名稱(包括命名空間和類型名稱)namespace_name.item_name;
    來(lái)訪問(wèn)。
  • 例如,如果在命名空間A中定義了一個(gè)類B,那么可以使用A.B的方式來(lái)訪問(wèn)這個(gè)類。
using System;

// 定義命名空間1
namespace first_space
{
   // 定義命名空間1中的類
   class namespace_cl
   {
      // 定義命名空間1中的方法,輸出字符串"Inside first_space"
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}

// 定義命名空間2
namespace second_space
{
   // 定義命名空間2中的類
   class namespace_cl
   {
      // 定義命名空間2中的方法,輸出字符串"Inside second_space"
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}

// 定義測(cè)試類,位于全局命名空間中
class TestClass
{
   static void Main(string[] args)
   {
      // 通過(guò)完全限定名稱,創(chuàng)建命名空間1中的類的實(shí)例
      first_space.namespace_cl fc = new first_space.namespace_cl();
      // 通過(guò)完全限定名稱,創(chuàng)建命名空間2中的類的實(shí)例
      second_space.namespace_cl sc = new second_space.namespace_cl();

      // 調(diào)用命名空間1中的方法,輸出字符串"Inside first_space"
      fc.func();
      // 調(diào)用命名空間2中的方法,輸出字符串"Inside second_space"
      sc.func();

      Console.ReadKey();
   }
}
  • 可以注意到,類可以放在命名空間中,也可以不放:
    • 如果不放在命名空間中,則它默認(rèn)屬于全局命名空間。
    • 如果放在命名空間中,則需要使用完全限定名稱來(lái)引用該類。

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Inside first_space
Inside second_space

2、全局命名空間的訪問(wèn)

在 C# 中,如果沒(méi)有指定任何命名空間,代碼就會(huì)被放置在全局命名空間中。這意味著在同一個(gè)程序集中的所有代碼都可以訪問(wèn)這些全局命名空間中定義的類型和成員,而不需要任何特殊的引用

以下是一個(gè)簡(jiǎn)單的示例,演示了一個(gè)類放置在全局命名空間中的情況:

class GlobalClass
{
    public void GlobalMethod()
    {
        Console.WriteLine("This is a method in the global namespace.");
    }
}

namespace MyNamespace
{
    class MyClass
    {
        public void MyMethod()
        {
            // 可以直接訪問(wèn)全局命名空間中的類型和成員
            GlobalClass gc = new GlobalClass();
            gc.GlobalMethod();
        }
    }
}

在上面的代碼中,GlobalClass 類被放置在全局命名空間中,而 MyClass 類被放置在 MyNamespace 命名空間中。在 MyMethod 方法中,可以直接訪問(wèn) GlobalClass 類型和 GlobalMethod 方法,而不需要特別的命名空間引用。

3、程序集間訪問(wèn)命名空間

使用命名空間可以使得代碼更加模塊化和可重用,也可以使得代碼更加易于組織和維護(hù)。在C#中,有許多預(yù)定義的命名空間,例如常見(jiàn)的SystemSystem.Collections,用于包含常用的類和類型。開(kāi)發(fā)人員還可以定義自己的命名空間來(lái)組織自己的代碼。

當(dāng)我們?cè)诹硪粋€(gè)程序集中想要使用當(dāng)前程序集定義的類型,就需要在另一個(gè)程序集中通過(guò)using語(yǔ)句導(dǎo)入對(duì)應(yīng)的命名空間,具體方法將在下面介紹。


using語(yǔ)句

在 C# 中,using 語(yǔ)句主要用于定義一個(gè)代碼塊,在該代碼塊結(jié)束時(shí)自動(dòng)釋放資源。這可以避免在程序執(zhí)行過(guò)程中出現(xiàn)資源泄漏的問(wèn)題,因?yàn)樵谑褂觅Y源的代碼塊結(jié)束時(shí),using 語(yǔ)句會(huì)自動(dòng)調(diào)用 Dispose 方法來(lái)釋放資源。

但using語(yǔ)句的用法卻不僅僅局限于上述一種,下面將介紹幾種using語(yǔ)句的常見(jiàn)用法。

1、引入命名空間

在C#中,命名空間用于組織代碼和避免命名沖突。如果要使用命名空間中的類型,需要通過(guò)using語(yǔ)句引入。引入后,就可以直接使用該命名空間中的類型,而不需要使用完全限定名(類似于python中的import導(dǎo)包)

例如,要使用System.Collections.Generic命名空間中的List類型,可以在代碼文件的開(kāi)頭添加以下語(yǔ)句:

using System.Collections.Generic;

這樣,在代碼中就可以直接使用List類型,而不需要使用完全限定名System.Collections.Generic.List。

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>();
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);
        Console.WriteLine("Count = " + numbers.Count);
    }
}

對(duì)與我們自己定義的命名空間,也是同樣的使用方法。以下是一個(gè)示例代碼,其中命名空間MyNamespace定義了一個(gè)類MyClass

// 自定義的命名空間
namespace MyNamespace
{
    public class MyClass
    {
        public void MyMethod()
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

在另一個(gè)程序集中,可以通過(guò)以下方式引用并使用MyClass

// 引入命名空間
using MyNamespace;

class Program
{
    static void Main(string[] args)
    {	// 直接使用定義的類
        MyClass obj = new MyClass();
        obj.MyMethod();
    }
}

2、自動(dòng)釋放資源

在C#中,有些類型需要手動(dòng)釋放資源,否則可能會(huì)造成內(nèi)存泄漏或其他問(wèn)題。例如,FileStream類型用于操作文件流,必須手動(dòng)關(guān)閉才能釋放資源。

為了方便起見(jiàn),C#提供了using語(yǔ)句來(lái)自動(dòng)釋放資源。using語(yǔ)句創(chuàng)建一個(gè)作用域,在作用域結(jié)束時(shí)自動(dòng)釋放資源。例如,以下代碼使用using語(yǔ)句打開(kāi)文件流,并在使用后自動(dòng)關(guān)閉:

using (var fileStream = new FileStream("example.txt", FileMode.Open))
{
    // 在此處使用文件流
}

在using語(yǔ)句中創(chuàng)建的文件流會(huì)在作用域結(jié)束時(shí)自動(dòng)關(guān)閉,不需要手動(dòng)調(diào)用Close方法。

需要注意的是,只有實(shí)現(xiàn)了IDisposable接口的類型才能使用using語(yǔ)句進(jìn)行自動(dòng)釋放資源。因此,如果使用using語(yǔ)句,需要確保所使用的類型實(shí)現(xiàn)了IDisposable接口。

3、起別名

在 C# 中,可以使用 using 關(guān)鍵字來(lái)為一個(gè)命名空間或類型起別名,以便在代碼中使用更簡(jiǎn)短的名稱。

例如,如果你想在代碼中頻繁使用 System.Collections.Generic 命名空間中的 List<T> 類,可以使用 using 關(guān)鍵字為其起一個(gè)別名。以下是使用 using 關(guān)鍵字為命名空間和類型起別名的示例:

using Alias = System.Collections.Generic.List<string>;

// 使用別名
Alias list = new Alias();
list.Add("hello");
list.Add("world");

在上面的示例中,我們使用 using 關(guān)鍵字為 System.Collections.Generic 命名空間中的 List<string> 類型起了一個(gè)別名 Alias。然后,我們可以在代碼中使用別名 Alias 來(lái)創(chuàng)建新的 List<string> 對(duì)象并進(jìn)行操作。

4、using static 指令

在C# 6及以上版本引入了 using static 指令,它允許在代碼中使用靜態(tài)成員,而不需要每次都通過(guò)類型名來(lái)訪問(wèn)。

使用 using static 指令,可以將一個(gè)靜態(tài)類的成員方法或?qū)傩詫?dǎo)入到當(dāng)前代碼文件的(全局)命名空間中,從而可以直接使用方法或?qū)傩悦Q,而不需要通過(guò)類名來(lái)訪問(wèn)。

這種語(yǔ)法糖可以使代碼更加簡(jiǎn)潔易讀。以下是使用 using static 指令的示例:

using static System.Math;

public class Program
{
    public static void Main(string[] args)
    {
        double a = 3;
        double b = 4;
        double c = Sqrt(a * a + b * b);
        Console.WriteLine($"The hypotenuse of a right triangle with legs {a} and {b} is {c}.");
    }
}

在上面的示例中,我們使用 using static 指令導(dǎo)入了 System.Math 靜態(tài)類中的全部方法,從而可以直接使用 Sqrt 方法,而不需要通過(guò) Math 類名來(lái)訪問(wèn)。這樣可以使代碼更加簡(jiǎn)潔易讀。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-674332.html

  • 需要注意的是,使用 using static 指令可能會(huì)導(dǎo)致命名沖突,因此應(yīng)該謹(jǐn)慎使用。

到了這里,關(guān)于unity的C#學(xué)習(xí)——命名空間的定義與訪問(wèn)、using語(yǔ)句的常見(jiàn)用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C++】命名空間 namespace 與 標(biāo)準(zhǔn)流 iostream ( 命名空間概念簡(jiǎn)介 | 命名空間定義 | 命名空間使用 | iostream 中的命名空間分析 )

    【C++】命名空間 namespace 與 標(biāo)準(zhǔn)流 iostream ( 命名空間概念簡(jiǎn)介 | 命名空間定義 | 命名空間使用 | iostream 中的命名空間分析 )

    命名空間 namespace 又稱為 名字空間 , 名稱空間 , 名域 , 作用域 , 是 C++ 語(yǔ)言 對(duì) C 語(yǔ)言 的擴(kuò)展 之一 ; C++ 中的 命名空間 namespace 指的是 標(biāo)識(shí)符 的 可見(jiàn)范圍 , C++ 標(biāo)準(zhǔn)庫(kù)中的 所有 標(biāo)識(shí)符 , 都定義在 std 命名空間中 ; 命名空間 英文名稱是 \\\" namespace \\\" , name 是 名字 , 名稱 的意思 ,

    2024年02月12日
    瀏覽(30)
  • [Unity命名空間教程]介紹Unity新自帶的命名空間UnityEngine.Pool

    [Unity命名空間教程]介紹Unity新自帶的命名空間UnityEngine.Pool

    ? 大家都知道在一些游戲中常常要?jiǎng)?chuàng)建大量的游戲?qū)ο螅绻@些對(duì)象長(zhǎng)期占用一些內(nèi)存而沒(méi)有觸發(fā)垃圾回收機(jī)制(以下簡(jiǎn)稱GC)或者過(guò)于頻繁的觸發(fā)GC就會(huì)導(dǎo)致游戲的幀數(shù)暴跌,在移動(dòng)設(shè)備直接造成卡死的現(xiàn)象,那引用對(duì)象池的概念,能讓這些游戲?qū)ο笤趧傞_(kāi)始的時(shí)候就被初

    2023年04月11日
    瀏覽(26)
  • c++命名空間和include C++ #include<string> 和 using std::string

    1、C++中的命名空間namespace_51CTO博客_c++中的命名空間 ? 2、 C++ #includestring 和 using std::string_yang20141109的博客-CSDN博客 //不光要加頭文件,和C語(yǔ)言不同 #include utils/Errors.h //還要加using using android::status_t; using android::INVALID_OPERATION; using android::NO_ERROR; using android::BAD_VALUE; 3、c和c++的差

    2023年04月20日
    瀏覽(24)
  • c++命名空間和include C++ #include<string> 和 using std::string

    1、C++中的命名空間namespace_51CTO博客_c++中的命名空間 ? 2、 C++ #includestring 和 using std::string_yang20141109的博客-CSDN博客 //不光要加頭文件,和C語(yǔ)言不同 #include utils/Errors.h //還要加using using android::status_t; using android::INVALID_OPERATION; using android::NO_ERROR; using android::BAD_VALUE; 3、c和c++的差

    2023年04月20日
    瀏覽(23)
  • C++命名空間的定義以及使用

    C++命名空間的定義以及使用

    ??博客主頁(yè): 主頁(yè) ??系列專欄: C++ ??感謝大家點(diǎn)贊??收藏?評(píng)論?? ??期待與大家一起進(jìn)步! 在C/C++中,變量、函數(shù)和后面要學(xué)到的類都是大量存在的,這些變量、函數(shù)和類的名稱將都存在于全局作用域中,可能會(huì)導(dǎo)致很多沖突。使用命名空間的目的是對(duì)標(biāo)識(shí)符的名

    2024年02月02日
    瀏覽(17)
  • Spring 自定義命名空間并解析 NameSpaceHandler

    Spring 自定義命名空間并解析 NameSpaceHandler

    主要有以下四步: 編寫(xiě)Schema文件 自定義NameSpaceHandler 綁定命令空間 自定義 BeanDefinitionParse 解析XML作為bd的配置元信息 命名空間映射XML 需要注意的時(shí),把 spring.handlers 文件與 spring.schemas 放在 resource目錄下的META-INF文件中 Schema文件 myschema.xsd 放在任意位置均可,但后面命名空間

    2024年02月12日
    瀏覽(23)
  • C#工程建立后修改工程文件名與命名空間

    C#工程建立后修改工程文件名與命名空間

    使用之前的項(xiàng)目做二次開(kāi)發(fā),項(xiàng)目快結(jié)束的時(shí)候,需要把主項(xiàng)目的名稱修改成我們想要的。 之前從來(lái)沒(méi)有這么干過(guò),記錄一下。 步驟如下: 1:打開(kāi)vs2010項(xiàng)目解決方案,重命名,如下圖所示: 2、接下來(lái)要改名代碼中的名稱空間名,任意打開(kāi)一個(gè)程序文件,找到命名空間名,

    2024年02月12日
    瀏覽(17)
  • 【VUE】ArcoDesign之自定義主題樣式和命名空間

    【VUE】ArcoDesign之自定義主題樣式和命名空間

    Arco Design是什么? Arco Design 是由字節(jié)跳動(dòng)推出的企業(yè)級(jí)產(chǎn)品的完整設(shè)計(jì)和開(kāi)發(fā)解決方案前端組件庫(kù) 官網(wǎng)地址:https://arco.design/ 同時(shí)也提供了一套開(kāi)箱即用的中后臺(tái)前端解決方案: Arco Design Pro (https://pro.arco.design/) Arco Design 樣式基于 less 技術(shù)棧,但也同 ElementPlus 默認(rèn)主題,CS

    2024年02月08日
    瀏覽(90)
  • C# 圖解教程 第5版 —— 第22章 命名空間和程序集

    C# 圖解教程 第5版 —— 第22章 命名空間和程序集

    ? 在許多項(xiàng)目中,會(huì)使用其他程序集的類或類型,而不僅僅是自己聲明的。這些程序集(稱為類庫(kù))可能來(lái)自 BCL 或第三方供應(yīng)商,也可以是自己創(chuàng)建的。通常這些程序集文件的名稱以 .dll 擴(kuò)展名結(jié)尾,而不是 .exe。 圖22.1 SuperLib 源代碼和結(jié)果程序集 ? 假設(shè)還要寫(xiě)一個(gè)名為

    2024年01月18日
    瀏覽(22)
  • Mybatis之簡(jiǎn)介、使用操作(安裝、XML、SqlSession、映射的SQL語(yǔ)句、命名空間、作用域和生命周期)

    學(xué)習(xí)的最大理由是想擺脫平庸,早一天就多一份人生的精彩;遲一天就多一天平庸的困擾。各位小伙伴,如果您: 想系統(tǒng)/深入學(xué)習(xí)某技術(shù)知識(shí)點(diǎn)… 一個(gè)人摸索學(xué)習(xí)很難堅(jiān)持,想組團(tuán)高效學(xué)習(xí)… 想寫(xiě)博客但無(wú)從下手,急需寫(xiě)作干貨注入能量… 熱愛(ài)寫(xiě)作,愿意讓自己成為更好

    2024年02月04日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包