But there's a little thing that I just come over with is this "async with out referencing". After a little googling I found that it is not possible to have out referencing with async because of a technical issue.
After reading some proposed workaround. I've come up with my idea to MIMICK the out reference syntax:public class AsyncTryOut<T>
{
public bool Status = false;
public T Out;
public AsyncTryOut() { }
public AsyncTryOut( bool b, T r )
{
Status = b;
Out = r;
}
public static bool operator true( AsyncTryOut<T> s ) { return s.Status; }
public static bool operator false( AsyncTryOut<T> s ) { return s.Status; }
}
I often out-referencing variables because of the Try-Out combo. So I can write something like this:Stream s = null;
// Search Phone library
if ( wStorage.TryGetImgFromLib( "wenku8_" + id, out s ) )
{
// Do something with s
}
...
With this little helper class, I can keep the old syntax as clear as before and keep the syntax structure look-alike:AsyncTryOut<Stream> = null;
// Search Phone library
if ( ato = wStorage.TryGetImgFromLib( "wenku8_" + id ) )
{
Stream s = ato.Out;
// Do something with s
}
..
However it only works on this condition. If you want the returned result to be a different type. You may want to extend this class with it... ANNnnd it is not practical to just extend each return type with a mostly identical class.
Urgh, nevermind.
斟酌 鵬兄
Sat Sep 19 2015 15:53:35 GMT+0000 (Coordinated Universal Time)
Last modified: Fri Mar 11 2016 14:31:41 GMT+0000 (Coordinated Universal Time)