Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

11
  • I've just returned void when doing it this way. The exception lets you know something bad happened and what that was. It is not my preferred way of handling this situation, but it is the standard/well-known way in C#. Commented May 25, 2017 at 21:59
  • 2
    <grammar nazi>You don't return void. You declare a void return signature.</grammar nazi> Commented May 26, 2017 at 1:14
  • @CandiedOrange: That's a type system wart in C#, more modern languages tend to have something like Void or Unit as a first-class type with only one value that's implicitly returned where appropriate. Commented May 26, 2017 at 8:16
  • @Phoshi if "something like void" is null and "unit" is the maybe monad/collection. Otherwise I've never heard of your "modern languages". I have heard of c# though where declaring a void return signature means you don't return anything, not even null. Means the method isn't a function but a subroutine. It's result can't be assigned to a variable. Commented May 26, 2017 at 14:20
  • @CandiedOrange: You will find an explicit "Void" or "Unit" type in: Haskell, rust, F#, Scala, Common Lisp, Python, Swift, Go, C++11, and others. It is mostly nice for making generic programming better - C# has Func and Action because of this wart, and any method accepting a Func or Action often needs another overload accepting the other. Commented May 26, 2017 at 15:26