Suliman:

But if I have a lot of property like^
string name
int age
....

it's not good to specify all of them in paranceses:
auto file = new FileName("test.txt", 21, ETC);

How can I specify them in another way?

There are several ways to help that. A simple way is to use default arguments:

this(string fileName, int id=21, Foo f=ETC) {...}

An alternative is to define various constructors with different number of arguments.

Other solutions include the use of a little configuration struct, or the chaining of setters that return "this":

FileName setId(int id_) { this.id = id_; return this; }

Then if you define several of such setters, you can chain only the ones you want in a single line.

auto f = new FileName("test.txt");
f.setId(21).setF(ETC);

Probably there are other solutions.

Bye,
bearophile

Reply via email to