My two cents

meppl mephisto at nordhoff-online.de
Wed Oct 25 15:52:17 UTC 2017


On Friday, 20 October 2017 at 00:26:19 UTC, bauss wrote:
> On Wednesday, 18 October 2017 at 08:56:21 UTC, Satoshi wrote:
>> conditional dereferencing and stuff about that (same as in C#)
>> ...
> ...
>> implement this thing from C# (just because it's cool)
>> new Foo() {
>>   property1 = 42,
>>   property2 = "bar"
>> };
>>
>>
>>
>> Thanks for your time.
>> - Satoshi
>
> I really wish this was implemented for classes too! Currently 
> it exist for structs and it completely baffles me why it has 
> never been implemented for structs.

maybe because of open questions. what is with private variables 
in a class?

At the current time i can set private variables in a D-struct 
from a different module:

// in amod.d

struct S
{
	private:
immutable	int a = 33;
}


// in bmod.d

S x = { a:1}; // no error
auto y = S( 1); // no error

the D-documentation doesnt tell, if this is valid behaviour of 
the compiler, whatever, for now I just assume it is.

maybe it is not a good thing to be able to do that. but at the 
same time the user should decide at object initialization what 
value _some_ private variables shall have. so, that's what the 
constructor usually is good for, too. let the user set only 
certain private variables one time at initialization. with the 
amod.d-code above there is no way to disallow resetting all 
private variables.

And: If i can only set public variables, it is not a perfect 
solution either


More information about the Digitalmars-d mailing list