StringTemplate.Net 学习笔记(5):条件声明
来源:互联网 发布:飞利浦空气净化器 知乎 编辑:程序博客网 时间:2024/06/08 05:05
ST的条件声明只有一个if语句,假如attribute为bool值,则直接计算,否则它通过判断attribute是否有值来计算。
接下来看几个例子:
例1,计算bool值:
StringTemplate st = new StringTemplate(@"$if(c)$ 条件成立$else$ 条件不成立$endif$");st.SetAttribute("c", false);Console.WriteLine(st.ToString());
输出:条件不成立
例2,计算bool值:
StringTemplate st = new StringTemplate(@"$if(c)$ 条件成立$else$ 条件不成立$endif$");st.SetAttribute("c", true);Console.WriteLine(st.ToString());
输出:条件成立
例3,判断是否有值:
StringTemplate st = new StringTemplate(@"$if(c)$ 条件成立$else$ 条件不成立$endif$");
Console.WriteLine(st.ToString());
输出:条件不成立
例4,判断是否有值:
StringTemplate st = new StringTemplate(@"$if(c)$ 条件成立$else$ 条件不成立$endif$");
st.SetAttribute("c", "test");Console.WriteLine(st.ToString());
输出:条件成立
例5,多个分支:
StringTemplate st = new StringTemplate(@"$if(a)$ 条件a成立$elseif(b)$ 条件b成立$elseif(c)$ 条件c成立$else$ 条件都不成立$endif$");st.SetAttribute("c", "00");Console.WriteLine(st.ToString());
输出:条件c成立
例6,多个分支设置了多个条件情况下,按照它们出现的顺序来确定条件是否成立:
StringTemplate st = new StringTemplate(@"$if(a)$ 条件a成立$elseif(b)$ 条件b成立$elseif(c)$ 条件c成立$else$ 条件都不成立$endif$");st.SetAttribute("c", true);st.SetAttribute("b", true);Console.WriteLine(st.ToString());
输出:条件b成立
例7,对attribute取反,这是ST唯一支持的运算符:
StringTemplate st = new StringTemplate(@"$if(!c)$ 条件成立$else$ 条件不成立$endif$");st.SetAttribute("c", true);Console.WriteLine(st.ToString());
输出:条件不成立
例8,嵌套的if语句:
StringTemplate st = new StringTemplate(@"$if(a)$ 条件a成立 $if(b)$ 条件b成立 $else$ 条件b不成立 $endif$$else$ 条件不成立$endif$");st.SetAttribute("a", true);Console.WriteLine(st.ToString());
输出:条件a成立 条件b不成立
支持的条件语法确实是太少了。
参考:http://www.antlr.org/wiki/display/ST/Expressions#Expressions-Attributeoperators
- StringTemplate.Net 学习笔记(5):条件声明
- StringTemplate.Net 学习笔记(1):
- StringTemplate.Net 学习笔记(2):语法介绍(表格)
- StringTemplate.Net 学习笔记(3):表达式元素语法(上)
- StringTemplate.Net 学习笔记(4):表达式元素语法(下)
- StringTemplate.Net 学习笔记(6):自定义输出格式
- StringTemplate.Net 学习笔记(7):加载模板文件
- StringTemplate学习笔记
- StringTemplate学习笔记
- VB.Net学习笔记(条件语句)
- VB.Net学习笔记(条件语句)
- StringTemplate.net模板语法
- StringTemplate.net模板技术用法
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(一)
- ios学习笔记之类声明(接口)
- OC学习笔记(4)属性声明
- Fortran学习笔记2(变量声明)
- 变量声明-TS学习笔记(2)
- 具备基本的编程功底能够有大体的轮廓知识
- wedding ceremony may
- DWR框架笔记
- Delphi磁性窗口
- WINCE基于AT050TN22屏的时序描述
- StringTemplate.Net 学习笔记(5):条件声明
- 采用H.264编码视频的参数设定
- AndroidManifest文件中android属性
- struts2 doubleselect
- S3C6410 中断分析
- 关于discuz nt登陆 注册 登陆 的整合
- 学习笔记1
- sqlldr 导入数据
- JNDI 是什么