On Saturday, 15 April 2023 at 14:17:19 UTC, Vijay Nayar wrote:
I believe if you do initialization at the class declaration level, then every instance of the class shares the same instance, e.g.:

```
class Var {}

class MyClass {
  Var var = new Var();
}

void main() {
  MyClass c1 = new MyClass();
  MyClass c2 = new MyClass();
  assert(c1.var is c2.var);
}
```

I should have made it clear that want a single shared default object. Your code above solves that problem. So does

```
Var defaultObj;
static this() { defaultObj = new Var(); }
```

By wrapping the new variable and the constructor call to initialize it in MyClass, you eliminate the need to call the constructor, which is what I want, but now you add the need to call another constructor. So for my purposes this is just moving the problem of null to another place.

Reply via email to