代码模板 使用代码模板生成代码
张静茹2017/04/28软件综合 IP:江苏

很简单的东西 用于批量生产代码

codeTemplate.gif

Buttons LeftThumbX LeftThumbY LeftTrigger RightThumbX RightThumbY RightTrigger

<code class="language-xaml">
<textblock text="{0} = ">


<textblock text="{{Binding {0}}}">




<stackpanel grid.column="0">
   <textblock text="Buttons = ">
   <textblock text="LeftThumbX = ">
   <textblock text="LeftThumbY = ">
   <textblock text="LeftTrigger = ">
   <textblock text="RightThumbX = ">
   <textblock text="RightThumbY = ">
   <textblock text="RightTrigger = ">
</textblock></textblock></textblock></textblock></textblock></textblock></textblock></stackpanel>


<stackpanel grid.column="1">
   <textblock text="{Binding Buttons}">
   <textblock text="{Binding LeftThumbX}">
   <textblock text="{Binding LeftThumbY}">
   <textblock text="{Binding LeftTrigger}">
   <textblock text="{Binding RightThumbX}">
   <textblock text="{Binding RightThumbY}">
   <textblock text="{Binding RightTrigger}">
</textblock></textblock></textblock></textblock></textblock></textblock></textblock></stackpanel>
</textblock></textblock></code>
<code class="language-C#"> namespace CodeTemplate
{
    class Program
    {
        static void Main(string[] args)
        {
            var Input = string.Empty;
            while (true)
            {
                Input = Console.ReadLine();
                switch (Input.ToLower())
                {
                    case "?":
                        Help.Instance.Write();
                        break;
                    case "c":
                    case "cls":
                        Console.Clear();
                        break;
                    case "t":
                    case "template":
                        Console.Clear();
                        Template.Instance.ReadTemplate();
                        Console.Clear();
                        break;
                    default:
                        ClearCurrentConsoleLine();
                        BuildCode.Instance.Read(Input);
                        break;
                }

            }
        }

        public static void ClearCurrentConsoleLine()
        {
            int currentLineCursor = Console.CursorTop - 1;
            Console.SetCursorPosition(0, currentLineCursor);
            Console.Write(new string(' ', Console.WindowWidth));
            Console.SetCursorPosition(0, currentLineCursor);
        }
    }
}

 class Template
    {
        static Template _Instance = new Template();
        public static Template Instance
        {
            get
            {
                return _Instance;
            }

        }
        private Template()
        {

        }

        public void ReadTemplate()
        {
            Console.WriteLine("请输入 Template");
            var input = Console.ReadLine();
            var Template = new StringBuilder();
            while (input != "end" && input != "e")
            {
                Template.Append(input);
                input = Console.ReadLine();
            }
            CodeTemplate = Template.ToString();
        }
        public string CodeTemplate { get; private set; }
    } 




class BuildCode
    {
        static BuildCode _Instance = new BuildCode();
        public static BuildCode Instance
        {
            get
            {
                return _Instance;
            }

        }
        private BuildCode()
        {

        }

        public void Read(string Input)
        {
            try
            {
                Console.WriteLine(Template.Instance.CodeTemplate, Input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    } 





</code>

[修改于 7年0个月前 - 2017/04/28 14:41:57]

来自:计算机科学 / 软件综合
4
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
张静茹 作者
7年0个月前 IP:江苏
833506
再举个栗子

变量
LeftThumbX
LeftThumbY
RightThumbX
RightThumbY


模板
public event EventHandler<short> Joypad_{0};
Joypad_{0}?.Invoke(this, XXXXXXXXXXXXXXXXXmepad.{0});



生成结果
public event EventHandler<short> Joypad_LeftThumbX;
public event EventHandler<short> Joypad_LeftThumbY;
public event EventHandler<short> Joypad_RightThumbX;
public event EventHandler<short> Joypad_RightThumbY;


Joypad_LeftThumbX?.Invoke(this, XXXXXXXXXXXXXXXXXmepad.LeftThumbX);
Joypad_LeftThumbY?.Invoke(this, XXXXXXXXXXXXXXXXXmepad.LeftThumbY);
Joypad_RightThumbX?.Invoke(this, XXXXXXXXXXXXXXXXXmepad.RightThumbX);
Joypad_RightThumbY?.Invoke(this, XXXXXXXXXXXXXXXXXmepad.RightThumbY);
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
7年0个月前 IP:江苏
833507
再举个栗子


变量
Y
None
DPadUp
DPadDown
DPadLeft
DPadRight
Start
Back
LeftThumb
RightThumb
LeftShoulder
RightShoulder
A
B
X



模板
public event EventHandler Joypad_{0};
Joypad_{0}?.Invoke(this, EventArgs.Empty);



结果
public event EventHandler Joypad_Y;
public event EventHandler Joypad_None;
public event EventHandler Joypad_DPadUp;
public event EventHandler Joypad_DPadDown;
public event EventHandler Joypad_DPadLeft;
public event EventHandler Joypad_DPadRight;
public event EventHandler Joypad_Start;
public event EventHandler Joypad_Back;
public event EventHandler Joypad_LeftThumb;
public event EventHandler Joypad_RightThumb;
public event EventHandler Joypad_LeftShoulder;
public event EventHandler Joypad_RightShoulder;
public event EventHandler Joypad_A;
public event EventHandler Joypad_B;
public event EventHandler Joypad_X;



Joypad_Y?.Invoke(this, EventArgs.Empty);
Joypad_None?.Invoke(this, EventArgs.Empty);
Joypad_DPadUp?.Invoke(this, EventArgs.Empty);
Joypad_DPadDown?.Invoke(this, EventArgs.Empty);
Joypad_DPadLeft?.Invoke(this, EventArgs.Empty);
Joypad_DPadRight?.Invoke(this, EventArgs.Empty);
Joypad_Start?.Invoke(this, EventArgs.Empty);
Joypad_Back?.Invoke(this, EventArgs.Empty);
Joypad_LeftThumb?.Invoke(this, EventArgs.Empty);
Joypad_RightThumb?.Invoke(this, EventArgs.Empty);
Joypad_LeftShoulder?.Invoke(this, EventArgs.Empty);
Joypad_RightShoulder?.Invoke(this, EventArgs.Empty);
Joypad_A?.Invoke(this, EventArgs.Empty);
Joypad_B?.Invoke(this, EventArgs.Empty);
Joypad_X?.Invoke(this, EventArgs.Empty);
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
acmilan
7年0个月前 修改于 6年11个月前 IP:四川
833525

做了个C语言窗口版的


attachment icon codetemp.rar 357.72KB RAR 39次下载

codetemp1.png

codetemp2.png

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
6年1个月前 IP:江苏
843948
正确方法是使用 Visual Stuidio的 T4 模板  方便 功能强大的多。。。。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
张静茹
进士 学者 机友 笔友
文章
138
回复
1857
学术分
1
2010/12/30注册,2个月0天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}