"before I invoke its get method, its value is shown" Yes, that's is obviously the case, but I fail to find this behaviour described in the documentation. However, I think it's useful.
IIRC: The dependent property is calculated "in the background" when displayed in a tooltip or the Variable Editor. Several releases back, the dependent property was calculated by an explicit call to the get-function when required for a tooltip. That caused a lot of pain when there was a bug in the get-function.
Try the following steps
>> cdp = class_dep_prop();
- set a breakpoint in the foo-method
- point at this to see a tooltip. Note that a value is displayed for x, but not for y.
- replace b=(1:3); by b=(1:2); and repeat the steps. Now, a value is displayed for y.
This behaviour is better than the old one, which throw an error in the get-function. (Maybe, it would be even better to show something like y=-error- in the tooltip when there is a bug in the get-function.)
where
classdef class_dep_prop < handle
properties
x = 1;
end
properties ( Dependent = true )
y
end
methods
function val = get.y( this )
a = (1:2);
b = (1:3);
c = a .* b;
val = c * this.x;
end
function val = foo( this )
val = 17;
end
end
end