Tag: 代码生成

只返回string中的数字0-9

我需要一个正则expression式,我可以在VBScript和.NET中使用,只返回在string中find的数字。 例如下面的任何“string”应该只返回1231231234 123 123 1234 (123)123-1234 123-123-1234 (123)123-1234 123.123.1234 123 123 1234 1 2 3 1 2 3 1 2 3 4 这将在电子邮件parsing器中用于查找客户可能在电子邮件中提供的电话号码并执行数据库search。 我可能错过了一个类似的正则expression式,但我在regexlib.com上search。 [编辑] – 增加了RegexBuddy在设置musicfreak的答案后生成的代码 VBScript代码 Dim myRegExp, ResultString Set myRegExp = New RegExp myRegExp.Global = True myRegExp.Pattern = "[^\d]" ResultString = myRegExp.Replace(SubjectString, "") VB.NET Dim ResultString As String Try Dim RegexObj As […]

普通旧式C中的types安全通用数据结构

我做了比“普通的老C”编程更多的C ++编程。 在纯C编程时,我非常想念的一件事是通过模板在C ++中提供的types安全的通用数据结构。 为了具体,请考虑一个通用的单向链表。 在C ++中,定义自己的模板类是一件简单的事情,然后将其实例化为您需要的types。 在C中,我可以想到实现一个通用单链表的几种方法: 一次写入链表types和支持过程,使用void指针绕过types系统。 编写预处理macros以获取必要的types名称等,以生成数据结构和支持过程的特定于types的版本。 使用更复杂的独立工具来生成所需types的代码。 我不喜欢选项1,因为它颠覆了types系统,而且可能比特定types的实现具有更差的性能。 使用所有types的数据结构的统一表示,以及从void指针转换到/从void指针,据我所知,需要一个间接的,这是一个专门的元素types实现将避免。 选项2不需要任何额外的工具,但是感觉有些笨重,并且在使用不当时可能会给编译器带来不好的错误。 选项3可以提供比选项2更好的编译器错误消息,因为专用数据结构代码将以扩展forms存在,可以在编辑器中打开并由程序员检查(而不是由预处理器macros生成的代码)。 不过,这个选项是最重的,是一种“穷人的模板”。 我以前使用过这种方法,使用简单的sed脚本来专门化一些C代码的“模板化”版本。 我想用C而不是C ++来编写我的未来“低级”项目,但是由于想重写每种特定types的通用数据结构而感到害怕。 人们对这个问题有什么经验? 在C中有没有很好的通用数据结构和algorithm库,它们不会与选项1一起使用(即,从void指针进行转换,这会牺牲types安全性并增加间接级别)?

用T4获取项目或相关目录

如何从t4模板中获得对Visual Studio项目或解决scheme的目录或t4模板的目录的引用? 我有一个模板,将多个文件连接在一起,这些文件与模板相关。 我需要通过一个相对的方法来获得对绝对位置的引用。 硬编码的绝对path是不可接受的,因为Visual Studio项目不会总是在相同的位置,这将打破代码生成。 从环境中读取当前工作目录不起作用,因为它返回T4引擎所在的位置而不是模板。 我只是进入t4所以任何帮助,将不胜感激。

在Maven中生成一个Version.java文件

我有一个使用Ant脚本构build的Java项目。 我正在尝试将该项目转换为Maven。 其中一个任务将生成一个名为Version.java的Java源文件,其中包含编译时间戳的静态String表示,如下所示: package com.foo.bar; public final class Version { public static String VERSION="100301.1046"; } Ant任务非常简单: <target name="version" depends="init" description="Create Version.java"> <echo file="src/${package.dir}/Version.java" message="package ${package.name};${line.separator}" /> <echo file="src/${package.dir}/Version.java" append="true" message="public final class Version {${line.separator}" /> <echo file="src/${package.dir}/Version.java" append="true" message=" public static String VERSION=&quot;${buildtime}&quot;;${line.separator}" /> <echo file="src/${package.dir}/Version.java" append="true" message="}${line.separator}" /> <echo message="BUILD ${buildtime}" /> </target> 是否有可能在Maven中使用生成源或其他简单的方法做类似的事情?

Java类可以在运行时自己添加一个方法吗?

一个类可以在运行时为自己添加一个方法(比如从一个static块),所以如果有人在这个类上进行reflection,他们会看到新的方法,即使它没有在编译时定义? 背景: 我使用的框架期望按照惯例定义具有doAction(…)方法的Action类。 框架在运行时检查这些类,以查看doAction()方法中可用的参数types。 例如:doAction( String a, Integer b) 我希望每个类都能够在检查时及时生成具有各种参数的doAction()方法。 该方法的主体可以是空的。

我可以在部分类中定义属性,然后用另一个部分类中的属性标记它们吗?

有没有办法,我可以有一个生成的代码文件,如下所示: public partial class A { public string a {get; set;} } 然后在另一个文件中: public partial class A { [Attribute("etc")] public string a {get; set;} } 这样我可以从数据库生成一个类,然后使用一个非生成的文件来标记它?

有没有替代cglib?

只是出于好奇,是否有任何(稳定)开源项目运行java代码生成而不是cglib? 我为什么要使用它们?

IntelliJ构build器模式代码生成

有什么办法可以在IntelliJ中自动编写生成器模式? 例如,给这个简单的类: class Film { private String title; private int length; public void setTitle(String title) { this.title = title; } public String getTitle() { return this.title; } public void setLength(int length) { this.length = length; } public int getLength() { return this.length; } } 有没有一种方法可以让IDE生成这个或类似的: public class FilmBuilder { Film film; public FilmBuilder() { film […]

为什么PHP数组示例留下一个尾随逗号?

我看过如下的例子: $data = array( 'username' => $user->getUsername(), 'userpass' => $user->getPassword(), 'email' => $user->getEmail(), ); 然而,在实践中,我一直没有留下尾随的逗号。 我做错了什么,或者这只是另一种做法? 如果我使用的框架不会有尾随逗号负面影响代码生成? 我已经看到在其他语言(Java,C ++)的数组声明中使用尾随逗号,所以我认为留下尾随逗号的原因并不是PHP特有的,但是这引起了我的兴趣。

什么是脚手架? 这是一个特定平台的术语吗?

脚手架是什么? 它只是一个Rails的东西?