最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

示例

新建一個(gè)控制臺(tái)程序,添加兩個(gè)類,分別為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類。但它們只在自己的文件中有效。

這時(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)鍵字是類型修飾符,這也意味著它不能與其他修飾符一起使用,比如public、internalprivate 等。

file可以修飾的類型

file可以在以下類型中使用。

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

file 不可修飾的類型

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

例如:

file interface IFileWidget
    {
        file void Widget();
    }

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

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

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

例如,我們修改一下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仍然是避免類型名稱沖突的首選方法。

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

相關(guān)文章

  • C#實(shí)現(xiàn)通過(guò)ffmpeg從flv視頻文件中截圖的方法

    C#實(shí)現(xiàn)通過(guò)ffmpeg從flv視頻文件中截圖的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)通過(guò)ffmpeg從flv視頻文件中截圖的方法,實(shí)例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以參考下
    2015-03-03
  • c#使用nsoup解析html亂碼解決方法分享 nsoup教程

    c#使用nsoup解析html亂碼解決方法分享 nsoup教程

    NSoup是JSoup的Net移植版本。使用方法基本一致。如果項(xiàng)目涉及HTML的處理,強(qiáng)烈推薦NSoup。但是遺憾的是NSoup默認(rèn)的編碼是UTF-8,處理中文有亂碼,下面給出二種解決方法
    2014-01-01
  • C#游戲開(kāi)發(fā)之實(shí)現(xiàn)貪吃蛇游戲

    C#游戲開(kāi)發(fā)之實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)經(jīng)典貪吃蛇游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • C#排序算法的比較分析

    C#排序算法的比較分析

    這篇文章主要介紹了C#排序算法的比較,實(shí)例分析幾種比較常見(jiàn)的算法,并對(duì)其時(shí)間復(fù)雜度與穩(wěn)定性進(jìn)行了詳細(xì)的分析,需要的朋友可以參考下
    2014-11-11
  • 探討:如何使用委托,匿名方法對(duì)集合進(jìn)行萬(wàn)能排序

    探討:如何使用委托,匿名方法對(duì)集合進(jìn)行萬(wàn)能排序

    本篇文章是對(duì)使用委托,匿名方法對(duì)集合進(jìn)行萬(wàn)能排序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#中的IDisposable模式用法詳解

    C#中的IDisposable模式用法詳解

    這篇文章主要介紹了C#中的IDisposable模式用法,講述了垃圾資源回收機(jī)制的實(shí)現(xiàn),并對(duì)比分析了Dispose()方法、~DisposableClass()析構(gòu)函數(shù)、虛方法Dispose(bool disposing)的原理,需要的朋友可以參考下
    2014-09-09
  • 基于JWT.NET的使用(詳解)

    基于JWT.NET的使用(詳解)

    下面小編就為大家分享一篇基于JWT.NET的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 基于C#實(shí)現(xiàn)屏幕取色器的示例詳解

    基于C#實(shí)現(xiàn)屏幕取色器的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)屏幕取色器,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • 使用C#開(kāi)發(fā)OPC?Server服務(wù)器源碼解析

    使用C#開(kāi)發(fā)OPC?Server服務(wù)器源碼解析

    OPC?Server服務(wù)器服務(wù)器的開(kāi)發(fā)比較繁瑣,本示例采用C#提供了一種簡(jiǎn)單快速實(shí)現(xiàn)OPCServer的方法,已經(jīng)在工程項(xiàng)目中應(yīng)用,本文對(duì)C#開(kāi)發(fā)OPC?Server服務(wù)器相關(guān)知識(shí)給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-06-06
  • c#制作類似qq安裝程序一樣的單文件程序安裝包

    c#制作類似qq安裝程序一樣的單文件程序安裝包

    c#制作單文件安裝程序,可安裝windows服務(wù),類似安裝QQ,大家參考使用吧
    2014-01-01

最新評(píng)論

城步| 象州县| 罗平县| 延庆县| 大田县| 韶关市| 麻江县| 北辰区| 温州市| 阳信县| 临沭县| 兰西县| 凤城市| 广西| 双流县| 丹江口市| 红原县| 和政县| 方正县| 板桥市| 遵义市| 南靖县| 吉隆县| 嘉鱼县| 筠连县| 垦利县| 大厂| 潜山县| 凤山市| 西华县| 图片| 宜宾市| 新平| 蓬安县| 孟连| 灵台县| 临清市| 化州市| 资中县| 元朗区| 江阴市|