zoukankan      html  css  js  c++  java
  • 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的值

  • 相关阅读:
    go context
    go etcd
    go logs
    go config
    go tail
    kafka与zookeeper
    go kafka
    go mysql
    array_map array_walk
    单独配置的nginx mysql 重启
  • 原文地址:https://www.cnblogs.com/Vincente/p/6909098.html
Copyright © 2011-2022 走看看