Hi :)
A few days ago i needed to toggle a bool, and i ended up doing like so:
IsVisible = !IsVisible;
I found that to be the simplest way to archive that functionaily. But before doing like the example above, i tried out some different ways.
Mostly about using a extension method. Which in my opinon would make it even simplier, or at least less chars to write.
IsVisible.toggle();
But as a boolean is a value type, the bool that is sent though to the extension method is a copy of the original bool, and not a reference type.
public static void Toggle(this boolean value)
{
value = !value;
}
Which would do what i needed, but as the boolean getting toggled is a copy of the original boolean the change isnt applied to the original..
I tried putting the ref keyword infront of "boolean", but that didn't compile. And i still haven't found a reason for that not compiling, wouldnt that be the perfect functionality for extension methods?
public static void Toggle(this ref boolean value)
I even tried casting the boolean into a object, which in my head would make it into a reference type, and then it would no longer be a copy and the change would get passed back. That didn't work either.
So my question is if its possible to make a extension pass back changes, or another way to make it even simplier than it already is?
I know it quite possible won't get any simplier or more logical than the top example, but you never know :)
Thanks in advance.