<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一文搞懂C#中類成員的可訪問性

      公眾號「DotNet學習交流」,分享學習DotNet的點滴。

      ??文末有總結,想快速瀏覽的朋友可直接看文末。

      1、成員訪問修飾符

      在C#中類成員訪問修飾符一共有5個,分別是public、private、protected、internal、protected internal。

      類B能否訪問一個類A的成員,取決于類B的兩個特征:

      1、類B是否派生自類A

      2、類B和類A是否在同一程序集

      2、成員的可訪問性

      準備

      在第一個命名空間ClassMemberAccessibility_Demo中定義一個類ClassA,ClassA有5個屬性分別被public、private、protected、internal、protected internal訪問修飾符修飾,定義一個ClassB,再定義一個ClassC繼承自ClassA,如下所示:

      namespace ClassMemberAccessibility_Demo
      {
         public class ClassA
        {
             public int Member1 { get; set; }
             private int Member2 { get; set; }
             protected int Member3 { get; set; }
             internal int Member4 { get; set; }
             protected internal int Member5 { get; set; }
        }
         public class ClassB
        {
             
        }
         public class ClassC : ClassA
        {
      ?
        }
         internal class Program
        {
             static void Main(string[] args)
            {
                 
            }
        }
      }

      在第二個命名空間中添加對第一個命名空間的引用,然后在第二個命名空間,定義類ClassD,再定義一個ClassE,ClassE繼承自ClassA,如下所示:

      using ClassMemberAccessibility_Demo;
      namespace ClassMemberAccessibility_Demo2
      {
         public class ClassD
        {
      ?
        }
         public class ClassE : ClassA
        {
      ?
        }
         internal class Program
        {
             static void Main(string[] args)
            {
             
            }
        }
      }

      在同一程序集但不繼承ClassA

      ClassB與ClassA在同一程序集,但是不繼承自ClassA,ClassA類成員對ClassB的可見性如下所示:

      image-20231120103627661

      在ClassB內可訪問Member1、Member4、Member5,修飾符分別是public、internal、protected internal。

      在同一程序集且繼承自ClassA

      ClassC與ClassA在同一程序集,并且繼承自ClassA,ClassA類成員對ClassC的可見性如下所示:

      image-20231120134924013

      創建一個ClassC實例,可訪問Member1、Member3、Member4、Member5,修飾符分別是public、protected、internal、protected internal。

      不在同一程序集且不繼承自ClassA

      image-20231120135439199

      在ClassD內只能訪問由public修飾的Member1。

      不在同一程序集,但是繼承自ClassA

      image-20231120135753911

      可訪問Member1、Member3、Member5,分別由public、protected、protected internal。

      3、總結

      5個修飾符的含義總結如下:

      修飾符含義
      public 對任何類可訪問
      private 只在類的內部可訪問
      protected 對所有繼承該類的類可訪問
      internal 對該程序集內所有類可訪問
      protected internal 對所有繼承該類或在該程序集內聲明的類可訪問

      要注意protected internal是protected和internal的并集而不是交集?。?!

      5個修飾符的可訪問級別如下:

      image-20231120141244927

      成員可訪問性的總結如下:

       同一程序集非派生同一程序集派生
      public ?? ??
      private    
      protected   ??
      internal ?? ??
      protected internal ?? ??
       不同程序集非派生不同程序集派生
      public ?? ??
      private    
      protected   ??
      internal    
      protected internal   ??

      ??表示可訪問

      參考

      《C#圖解教程(第4版)》——Daniel M. Solis

      摘要

      C#中類成員的訪問修飾符有public、private、protected、internal、protected internal共5種,本文介紹了這5種修飾符的用法與可訪問性。

      posted @ 2023-11-20 15:12  mingupupup  閱讀(420)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国内精品久久久久久无码不卡| 久久久精品人妻一区二区三区| 日韩av一区二区三区在线| 色九月亚洲综合网| 亚洲av日韩av中文高清性色| 奎屯市| 亚洲大尺度无码无码专线| 成人网站国产在线视频内射视频| 乐至县| 成人综合婷婷国产精品久久蜜臀 | 在线看无码的免费网站| 久久精品第九区免费观看| 精品乱码一区二区三四五区| 鄄城县| 国产精品一二三区蜜臀av| 午夜国产理论大片高清| 亚洲国产精品人人做人人爱| 成人爽a毛片免费| 深夜在线观看免费av| 国产精品久久久久9999高清| 尤物国精品午夜福利视频| 亚洲精品一区二区三区不| 四虎成人免费视频在线播放| 黑人巨大精品欧美| 色婷婷日日躁夜夜躁| 泰州市| 久久中文字幕一区二区| 欧美嫩交一区二区三区| 国产一区二区三区九九视频| 国产精品久久毛片| 国产精品人妻中文字幕| 激情综合五月丁香亚洲| 欧美黑人XXXX性高清版| 国产人妻丰满熟妇嗷嗷叫| 色噜噜在线视频免费观看| 性色欲情网站iwww九文堂| 无码av中文一区二区三区桃花岛| 亚洲美女被黑人巨大在线播放| 无码人妻一区二区三区四区AV| 国产成人精品电影在线观看| 久久夜色精品国产噜噜亚洲sv|