美文网首页
C#嵌套类

C#嵌套类

作者: 寻找无名的特质 | 来源:发表于2021-02-02 06:31 被阅读0次

C#允许嵌套类,也就是在类中定义类,以前一直没有用过,这两天写一个XML的解析程序,发现了这种技术的使用场景,这里顺便总结一下。

在解析SCXML时,针对SCXML中的元素创建为C#的类,这样在解析时,将xml文档转换为对象集合,在操作时,只要操作对象就可以了。举个例子,比如datamodel元素,结构是这样的:

      <datamodel>
        <data id="ccxmlid" expr="32459"/>
        <data id="v3id" expr="17620"/>
        <data id="dest" expr="'tel:+18315552020'"/>
        <data id="src" expr="'helloworld2.vxml'"/>
        <data id="id" expr="'HelloWorld'"/>
      </datamodel>

我们创建对应的C#类,表示这种结构。我们创建类DataModelConfigure对应<datamodel>元素,创建类DataConfigure对应<data>元素,由于<data>元素总是出现在<datamodel>元素中,所以,我们可以在DataModelConfigure中定义DataConfigure:

using System.Collections.Generic;

namespace ZL.FSM.Core.Models
{
    public class DataModelConfigure
    {
        public List<DataConfigure> DataList { get; set; }

        public DataModelConfigure()
        {
            DataList = new List<DataConfigure>();
        }
        public class DataConfigure
        {
            public string Src { get; set; }

            public string Expr { get; set; }

            public string Content { get; set; }
        }
    }
}

这样的好处是增加了代码的可读性和可维护性,减少了类定义的文件。

相关文章

  • C# 嵌套类

    在一个类或类的方法中定义另一个类,分为静态嵌套类(使用少)和非静态嵌套类(又称内部类)。嵌套类是外部类的补充,通过...

  • C#嵌套类

    C#允许嵌套类,也就是在类中定义类,以前一直没有用过,这两天写一个XML的解析程序,发现了这种技术的使用场景,这里...

  • 局部类和嵌套类

    一. 嵌套类 1.1嵌套类的定义 在一个类体中定义的类叫作嵌套类。拥有嵌套类的类叫外围类。 1.2嵌套类的作用 定...

  • 常见的类

    嵌套类 内部类 枚举类 密封类 数据类 单例模式 伴生对象 嵌套类 嵌套类是嵌套在其它类中的类 不能访问外部类的成...

  • kotlin精讲-第3章(4)嵌套类&数据类

    嵌套类 我们在Kotlin内部还可以定义类,这样的类,我们可以称为嵌套类(nestedclasses)。嵌套类分成...

  • Java 内部类(嵌套类)和局部类

    嵌套类 定义在另一个类中的类,就叫嵌套类。在嵌套类外层的累,称为:外部类最外层的外部类,称为:顶级类 嵌套类又分为...

  • Kotlin面向对象 (7)✔️嵌套类

    嵌套类内部类 (特殊的嵌套类) kotlin 语言中允许在一个类的内部声明另一个类,称为“嵌套类”,嵌套类还有一种...

  • Java-嵌套类

    嵌套类分为两类:静态和非静态。被声明static的嵌套类称为静态嵌套类。非静态嵌套类称为内部类。内部类有两种特殊的...

  • 10. 内部类

    1. 普通嵌套类 在Kotlin中,一个类嵌套在其他类中,而且可以嵌套多层 测试代码: 访问嵌套类的方式是 直接使...

  • kotlin 嵌套和内部类

    Kotlin 嵌套类 与Java类似,Kotlin允许您在另一个称为嵌套类的类中定义一个类 由于嵌套类是其封闭类的...

网友评论

      本文标题:C#嵌套类

      本文链接:https://www.haomeiwen.com/subject/nenpzktx.html