zoukankan      html  css  js  c++  java
  • CodeSmith实用技巧(一):使用StringCollection

      StringCollection提供了一种集合的输入方式,在代码中,可以用Array的方式来引用。在使用这个类之前,在模版中我们必须添加对CodeSmith.CustomProperties程序集的引用:
    <%@ Assembly Name="CodeSmith.CustomProperties" %>

    添加完程序集之后,我们就可以使用StringCollection在脚本块中定义一个属性:

    <%@ Property Name="List" Type="CodeSmith.CustomProperties.StringCollection" Category="Custom" Description="This is a sample StringCollection" %>

    执行该模版时,这个属性将在属性窗体中显示为一个按钮:

    单击按钮,将会弹出一个String Collection Editor对话框:

    当然也可以直接在属性窗口中编辑StringCollection

    模版代码如下:

     1<%@ CodeTemplate Language="C#" TargetLanguage="C#" %>
     2
     3<%@ Assembly Name="CodeSmith.CustomProperties" %>
     4
     5<%@ Property Name="List" Type="CodeSmith.CustomProperties.StringCollection" Category="Custom" Description="This is a sample StringCollection" %>
     6
     7using System;
     8namespace Test
     9
    10{       
    11         /// <summary>
    12
    13         ///     测试StringCollection
    14
    15         /// </summary>

    16
    17         public class Test
    18
    19         {
    20
    21                   public static void Main(string[] args)
    22
    23                   {
    24
    25                            <%for(int i = 0;i<List.Count;i++){%>
    26
    27                            Console.WriteLine(<%=List[i]%>);
    28
    29                            <%}
    %>
    30
    31                   }

    32
    33         }

    34
    35}

    36
    37

    生成后的代码:

     1using System;
     2
     3namespace Test
     4
     5{       
     6         /// <summary>
     7
     8         ///     测试StringCollection
     9
    10         /// </summary>

    11
    12         public class Test
    13
    14         {
    15
    16                   public static void Main(string[] args)
    17
    18                   {
    19
    20                            Console.WriteLine(Apples);
    21
    22                            Console.WriteLine(Fish);
    23
    24                   }

    25
    26         }

    27
    28}

    29
      StringCollection的重要属性和方法:

    公共属性

    名称

    描述

    Count

    获取StringCollection中包含的字符串的数目

    IsReadOnly

    获取用于指示StringCollection是否为只读的值

    IsSynchronized

    获取一个值,该值指示对StringCollection 的访问是否为同步的(线程安全的)

    Item

    获取或设置指定索引处的元素。在C# 中,该属性为 StringCollection 类的索引器

    SyncRoot

    获取可用于同步对StringCollection 的访问的对象

    公共方法

    名称

    描述

    Add

    将字符串添加到 StringCollection 的末尾

    AddRange

    将字符串数组的元素复制到 StringCollection 的末尾

    Clear

    移除 StringCollection 中的所有字符串

    Contains

    确定指定的字符串是否在 StringCollection

    CopyTo

    从目标数组的指定索引处开始,将全部 StringCollection 值复制到一维字符串数组中

    IndexOf

    搜索指定的字符串并返回 StringCollection 内的第一个匹配项的从零开始的索引

    Insert

    将字符串插入 StringCollection 中的指定索引处

    Remove

    StringCollection 中移除特定字符串的第一个匹配项

    RemoveAt

    移除 StringCollection 的指定索引处的字符串

     

    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    “北斗人”梦想成真!星间链路新技术探索,ThingJS 3D 可视化 效果图
    如何从道路BIM模型中提取数据?分三步超简单!ThingJS 3D 可视化
    ThingJS: 做一个数据可视化项目的难点在什么地方?3D 可视化 three.js
    震撼来袭 | ThingJS 3D城市应用双11钜惠,低至688元>>官方优惠
    ThingJS 和three.js开发有何不同,让开发早点下班回家!3D 可视化
    NASA样本实验室之3D渲染图,和宇航员一样的上帝视角!3D 可视化 ThingJS
    三维建模国内外技术对比:和SketchUp、Revit建模软件相媲美 3D 地图 可视化 ThingJS
    CSS两列及三列自适应布局方法整理
    前端进阶-每日一练(3)
    前端进阶-每日一练(2)
  • 原文地址:https://www.cnblogs.com/Terrylee/p/304865.html
Copyright © 2011-2022 走看看