输入参数和方法

在【CodeSmith快速入门之一:初次接触CodeSmith】中,我们实现了最简单的模板,但是模板中的内容无法由用户的输入决定。

假定你女朋友要你在新年的时候说10次“I LOVE YOU”,而在情节人那天要你说1000次“I LOVE YOU FOR EVER”,这可怎么办呢?
我们经过分析,其实就是次数和说的内容不确定。

那么我们马上着手开始实现吧。

1、新建C#模板,去掉原始内容并保存取名为“Love.cst”
(操作同【CodeSmith快速入门之一:初次接触CodeSmith】一致)

2、添加模板声明

<% @ CodeTemplate Language = " C# ResponseEncoding="UTF-8"  Description = " 爱情表达 " %>

 

3、为了可以接收外部传进来的“次数”和“内容”,定义两个输入参数

<% @ CodeTemplate Language = " C# ResponseEncoding="UTF-8"  Description = " 爱情表达 " %>
<% Property  Name = " Content "  Type = " String "  Default = ""  Optional = " False "  Category = " Context "  Description = " 要讲的话 "   %>
<% Property  Name = " Count "  Type = " Int32 "  Default = " 10 "  Optional = " true "  Category = " Context "  Description = " 讲的次数 "   %>

Property的属性:
--Name:名称
--Type:数据类型
--Category:属性分类名称
输入参数和方法
--Default:默认值
--Description:描述
--Optional:是否允许为空(true或者false)
注意:两个参数的名称分别为:Content和Count,我们可以像使用变量一样使用

4、为了重用,在模板中定义一个方法

复制代码
< script  runat ="template" >
    public 
void  Say()
    {
        
for ( int  i = 0 ; i < Count; i ++ )
        {
            Response.WriteLine(Content);
        }
    }
</ script >
复制代码

<script>脚本标签中可以包含一段代码,但是它们不直接影响输出的模板,我们可以在里面存放一些常用的方法

5、在模板中调用方法

复制代码
<% @ CodeTemplate Language = " C# ResponseEncoding="UTF-8"  Description = " 爱情表达 " %>
<% Property  Name = " Content "  Type = " String "  Default = ""  Optional = " False "  Category = " Context "  Description = " 要讲的话 "   %>
<% Property  Name = " Count "  Type = " Int32 "  Default = " 10 "  Optional = " true "  Category = " Context "  Description = " 讲的次数 "   %>

您说的内容如下:
<% Say(); // 调用Say方法 %>

< script  runat ="template" >
public 
void  Say()
{
    
for ( int  i = 0 ; i < Count; i ++ )
    {
        Response.WriteLine(Content);
    }
}
</ script >
复制代码

代码标签:
<% 可以放置任意代码,但不能输出到模板 %>
<%= 输出内容 %>

6、运行模板,但是发现报出错误
输入参数和方法
输入参数和方法
Content is required:要讲的内容不能为空。原来我们把Content参数的Optional设置为了false,Content必须输入值。

9、在属性窗口中输入值【I LOVE YOU】并重新运行
输入参数和方法
注:Count中有默认值10,说明Default为10产生作用。

最后结果为:
您说的内容如下:
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU
I LOVE YOU

呵呵,怎么样,效果出来了吧。下次我将会为大家讲解对数据库中信息的访问,谢谢!

你可能感兴趣的:(方法)