欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#11新特性之file關(guān)鍵字的用法教程

 更新時(shí)間:2022年12月14日 08:56:13   作者:gmval  
C#11?添加了文件作用域類(lèi)型功能:一個(gè)新的?file?修飾符,可以應(yīng)用于任何類(lèi)型定義以限制其只能在當(dāng)前文件中使用。這樣,我們可以在一個(gè)項(xiàng)目中擁有多個(gè)同名的類(lèi)。本文就來(lái)聊聊file關(guān)鍵字的用法,需要的可以參考一下

C#11 添加了文件作用域類(lèi)型功能:一個(gè)新的 file 修飾符,可以應(yīng)用于任何類(lèi)型定義以限制其只能在當(dāng)前文件中使用。這樣,我們可以在一個(gè)項(xiàng)目中擁有多個(gè)同名的類(lèi)。

示例

新建一個(gè)控制臺(tái)程序,添加兩個(gè)類(lèi),分別為File1.cs和File2.cs

//File1.cs
namespace ConsoleApp
{
    file static class FileWidget
    {
        public static string Widget() => "File1";
    }
    static class GetFileWidget1
    {
        internal static string GetString()=> FileWidget.Widget();
    }
}
//File2.cs
namespace ConsoleApp
{
    file static class FileWidget
    {
        public static string Widget() => "File2";
    }
    static class GetFileWidget2
    {
        internal static string GetString() => FileWidget.Widget();
    }
}

兩個(gè)文件中,定義了相同的FileWidget類(lèi)。但它們只在自己的文件中有效。

這時(shí),我們調(diào)用兩個(gè)文件對(duì)應(yīng)的方法,可以正常輸出!

using ConsoleApp;

Console.WriteLine(GetFileWidget1.GetString());
Console.WriteLine(GetFileWidget2.GetString());

file不可以與其他修飾符一起使用

需要注意的是:從C# 11開(kāi)始,file關(guān)鍵字是類(lèi)型修飾符,這也意味著它不能與其他修飾符一起使用,比如public、internal、private 等。

file可以修飾的類(lèi)型

file可以在以下類(lèi)型中使用。

  • class
  • struct
  • interface
  • enum
  • delegate
  • record
  • record struct

file 不可修飾的類(lèi)型

file修飾符不適用于嵌套在父類(lèi)型中的類(lèi)型。它也不適用于方法屬性、事件和字段,但語(yǔ)言設(shè)計(jì)說(shuō)明解釋說(shuō):“為非類(lèi)型文件范圍的成員留出設(shè)計(jì)空間,以便以后出現(xiàn)。”

例如:

file interface IFileWidget
    {
        file void Widget();
    }

這時(shí)會(huì)有報(bào)錯(cuò):

file 可以有一個(gè)或多個(gè)同名類(lèi)

在一個(gè)項(xiàng)目中,可以有一個(gè)internal級(jí)別類(lèi),同時(shí)可以擁有一個(gè)或多個(gè)file級(jí)別的同名類(lèi)。 唯一的缺點(diǎn)是文件類(lèi)不能在公共類(lèi)中使用。

例如,我們修改一下File1.cs

namespace ConsoleApp
{
    file static partial class FileWidget
    {
        public static string Widget() => "File1";
    }
    file static partial class FileWidget
    {
        public static string GetWidget() => "File";
    }
    static class GetFileWidget1
    {
        internal static string GetString()=> FileWidget.Widget();
        internal static string GetString2()=> FileWidget.GetWidget();
    }
}

控制臺(tái)輸出一下:

using ConsoleApp;

Console.WriteLine(GetFileWidget1.GetString());
Console.WriteLine(GetFileWidget1.GetString2());
Console.WriteLine(GetFileWidget2.GetString());

沒(méi)有任何問(wèn)題!

總結(jié)

namespace仍然是避免類(lèi)型名稱(chēng)沖突的首選方法。

到此這篇關(guān)于C#11新特性之file關(guān)鍵字的用法教程的文章就介紹到這了,更多相關(guān)C#11 file關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Unity3D實(shí)現(xiàn)旋鈕控制燈光效果

    Unity3D實(shí)現(xiàn)旋鈕控制燈光效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)旋鈕控制燈光效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • c#中判斷類(lèi)是否繼承于泛型基類(lèi)

    c#中判斷類(lèi)是否繼承于泛型基類(lèi)

    這篇文章主要介紹了c#中判斷類(lèi)是否繼承于泛型基類(lèi),最簡(jiǎn)單的辦法肯定是typeof(b).baseType=typeof(a<string>)這樣就可以返回true,但是這種方法時(shí)不妥的,下面看看如何解決這個(gè)問(wèn)題呢
    2022-04-04
  • 設(shè)置C#窗體程序只能啟動(dòng)一次

    設(shè)置C#窗體程序只能啟動(dòng)一次

    有時(shí)候我們需要我們的軟件只可以啟動(dòng)一次,用下面的代碼就可以實(shí)現(xiàn)啊。
    2009-04-04
  • 調(diào)整C#中數(shù)組大小的方法

    調(diào)整C#中數(shù)組大小的方法

    數(shù)組存儲(chǔ)多個(gè)相同類(lèi)型的一種非常常用的數(shù)據(jù)結(jié)構(gòu),它長(zhǎng)度是固定,也就是數(shù)組一旦創(chuàng)建大小就固定了,C# 數(shù)組不支持動(dòng)態(tài)長(zhǎng)度,那在C#中是否有方法可以調(diào)整數(shù)組大小呢?本文將通過(guò)示例介紹一種調(diào)整一維數(shù)組大小的方法,需要的朋友可以參考下
    2024-06-06
  • C#調(diào)用mmpeg進(jìn)行各種視頻轉(zhuǎn)換的類(lèi)實(shí)例

    C#調(diào)用mmpeg進(jìn)行各種視頻轉(zhuǎn)換的類(lèi)實(shí)例

    這篇文章主要介紹了C#調(diào)用mmpeg進(jìn)行各種視頻轉(zhuǎn)換的類(lèi),實(shí)例分析了C#調(diào)用mmpeg操作視頻文件的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#中foreach循環(huán)對(duì)比f(wàn)or循環(huán)的優(yōu)勢(shì)和劣勢(shì)

    C#中foreach循環(huán)對(duì)比f(wàn)or循環(huán)的優(yōu)勢(shì)和劣勢(shì)

    循環(huán)語(yǔ)句是編程的基本語(yǔ)句,在C#中除了沿用C語(yǔ)言的循環(huán)語(yǔ)句外,還提供了foreach語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán),下面這篇文章主要給大家介紹了關(guān)于C#中foreach循環(huán)對(duì)比f(wàn)or循環(huán)的優(yōu)勢(shì)和劣勢(shì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • C#中的out參數(shù)、ref參數(shù)和params可變參數(shù)用法介紹

    C#中的out參數(shù)、ref參數(shù)和params可變參數(shù)用法介紹

    這篇文章介紹了C#中的out參數(shù)、ref參數(shù)和params可變參數(shù)用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • C# Winform中實(shí)現(xiàn)主窗口打開(kāi)登錄窗口關(guān)閉的方法

    C# Winform中實(shí)現(xiàn)主窗口打開(kāi)登錄窗口關(guān)閉的方法

    這篇文章主要介紹了C# Winform中實(shí)現(xiàn)主窗口打開(kāi)登錄窗口關(guān)閉的方法,這在需要用戶(hù)名密碼的軟件項(xiàng)目中是必用的一個(gè)技巧,要的朋友可以參考下
    2014-08-08
  • C#判斷指定分區(qū)是否是ntfs格式的方法

    C#判斷指定分區(qū)是否是ntfs格式的方法

    這篇文章主要介紹了C#判斷指定分區(qū)是否是ntfs格式的方法,涉及C#中DriveFormat屬性的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • c#和net存取cookies操作示例

    c#和net存取cookies操作示例

    這篇文章主要介紹了c#和net存取cookies操作示例,需要的朋友可以參考下
    2014-02-02

最新評(píng)論