解读C#中内部类的语法结构

发表于:2010-8-30 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:情缘(cnblogs)    来源:51Testing软件测试网采编

  摘要:文章简单介绍了C#中的内部类,C#内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,本文也结合实例分析了C#中内部类的使用。

  最近在看Java一方面的书籍,看到一个很奇怪的问题,Java类中还可以再定义一个类,这种结构非常特殊!后来才发现,原来C#中也有内部类,之前都一直没有注意过这个语法结构!

  使用内部类有这样几个好处:

  (1)抽象外部类的某一状态下的行为,隐藏实现,通过修改该内的访问修饰符,可以设置仅有外部类可以访问该类。

  (2)扩展了命名空间,可以将外部类的类名作为内部类的一个命名空间(这里只是相当于,但不是真正的命名空间)。

  (3)内部类可以当作外部类的一个扩展,可以活的更好的封装。

  上面的这些特点胡乱的总结了一下,可能有些词不达意,下面有些具体例子:

  1.内部类的定义:

  嵌套类:在一个类中定义另外一个类,主要分为静态嵌套类和非静态嵌套类(又称之为"内部类")。内部类的定义结构:

  (1)在一个类中直接定义类。

  (2)在一个方法中定义类。

  (3)匿名内部类。

  2.外部类访问内部类

外部类访问内部类 例子  
namespace GameStatistical.Test.InnerClass 
 { 
     public class Person 
     { 
         public class Student 
         { 
             public static int age; 
             internal static int height; 
             private static string sex; 

             public virtual void Show() 
             { 
                 Console.WriteLine("年龄:"+age); 
                 Console.WriteLine("身高:"+height); 
             }
 
             internal void Display() 
            { 
                Console.WriteLine("internal"); 
                Console.WriteLine("年龄:" + age); 
                Console.WriteLine("身高:" + height); 
             } 
         }
 
          public void Show() 
         { 
             Student.age = 21; 
             Student.height = 75; 
             Student student = new Student(); 
             student.Show(); 
         } 
     } 
 }

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号