C# 嵌套类

C#可以在一个类中定义另一个类。如果嵌套的类声明为私有,就不能在包含类外部实例化嵌套类。

使用嵌套类的一个原因是嵌套类可以访问其包含类的私有和受保护成员。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;

namespace Ch10Ex02
{
    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;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            classA myObject = new classA();
            WriteLine($"myObject.State = {myObject.State}");
            classA.classB myOtherObject = new classA.classB();
            myOtherObject.SetPrivateState(myObject, 999);
            WriteLine($"myObject.State = {myObject.State}");
            ReadKey();
        }
    }
}

结果:

 

posted on 2017-01-30 23:20  lakeone  阅读(968)  评论(0编辑  收藏  举报

导航