C#嵌套的類型的定義


今天看書看到一個很好玩的,是嵌套的類。

public class ClassA
    {
        private int state = 1;

        public int State
        {
            get { return state; }
        }

        public class ClassB
        {
            public void SetPrivateState(ClassA target, int newState)
            {
                target.state = newState;
            }
        }
    }

在控制台程序中運行

 private static void Main(string[] args)
        {
            ClassA myObj = new ClassA();
            Console.WriteLine("myObj.State={0}", myObj.State);
            ClassA.ClassB myOtherObj = new ClassA.ClassB();
            myOtherObj.SetPrivateState(myObj, 999);
            Console.WriteLine("myObj.State={0}", myObj.State);
            Console.ReadKey();
        }

輸出結果

 

 

通過創建一個ClassA的實例,包含一個只讀屬性State,然后創建了一個嵌套類ClassA.ClassB的一個實例。嵌套類能夠訪問ClassA.State的底層字段State,即使這個字段是一個私有字段。因此,嵌套類的方法SetPrivateState()可以修改ClassA的只讀屬性State的值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM