Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Using extension for small using statements. #7

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dsmailys
Copy link

My first pull request

@dsmailys
Copy link
Author

Any suggestions are welcome. This might not be an extension method due to not having this parameter in method declaration, but it is very helpful to use nevertheless.
If the author approves - will add tests for it.

@JonathanMagnan
Copy link
Member

Hello @dsmailys ,

Thank you for submitting this pull.

I believe it's a very good addition and I could have used it myself multiple times.

No need to add a test, I will add it on my side by testing it (Anyway, there is not a lot of tests we can add here hehe!)

Best Regards,

Jonathan

@JonathanMagnan JonathanMagnan self-assigned this Sep 22, 2017
@JonathanMagnan
Copy link
Member

Hello @dsmailys ,

Sorry for the long delay ;)

Is there a reason why you did make it as an extension method such as:

public static void Using<TDisposable>(this TDisposable factory, Action<TDisposable> action)
    where TDisposable : IDisposable
{
    using (var disposable = factory)
    {
        action(disposable);
    }
}

public static TResult Using<TDisposable, TResult>(this TDisposable factory, Func<TDisposable, TResult> action)
    where TDisposable : IDisposable
{
    using (var disposable = factory)
    {
        return action(disposable);
    }
}

I believe this implementation will be better which will allow code such as:

var sqlConnection = new SqlConnection();

sqlConnection.Using(x =>
{
    if (x.State != ConnectionState.Open)
    {
                    
    }
});

Let me know your though.

Best Regards,

Jonathan

@dsmailys
Copy link
Author

dsmailys commented Dec 4, 2017

@JonathanMagnan looks great! I prefer more the syntax that you have outlined in your latest comment. Will you modify it accordingly or should I change up the code for the pull request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants