How to tell if an out parameter was set already?

c#, out

Solution

You can't - you can't read the variable until it's been definitely assigned within your method. You should think of it as being like a local variable, declared but not assigned any value at the start of the method - but which you must assign a value to before you return. (It's okay not to have assigned a value to it if an exception is thrown.)

If you want a parameter which carries information as input to the method as well as propagating information out, you should use `ref` instead of `out`.

See my article on parameter passing for more information.

Problem

Is there a way to know if an out parameter was set already or not. This is the pseudocode for what I am looking for: ``` public virtual string blabla(long num, out bool bval) { if (!bval.HasValue) { //Do some default logic bval = defaultValue; } return blabla2(num, bval); } ```

Original source