Annotation programming in my design code ..

Brian via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 6 09:44:13 PST 2017


I would like to design features, how should I do?

coding:

class User
{
	@GenerateProperty
	int id;
	
	@GenerateProperty
	string name;
}

struct GenerateProperty
{
	this(string propertyName)
	{
		propertyName = propertyName
	}
	
	string propertyName;
	
	string getGenerateCode()
	{
		return "@property int " ~ propertyName ~ "() { return __" ~ 
propertyName ~ "; }\n at property int " ~ propertyName ~ "(int 
value) { return __" ~ propertyName ~ " = value; }";
	}
}

result code:

class User
{
     @property int id() { return __id; }
     @property int id(int value) { return __id = value; }
	
     @property string name() { return __name; }
     @property string name(int value) { return __name = value; }
	
	private
	{
		int __id;
		string __name;
	}
}



More information about the Digitalmars-d mailing list