Checking if an array is initialized and allocated in VB.NET
Option Strict  

First thing first: Enable Option Strict please read : whats-an-option-strict-and-explicit  

This will make your code less error prone. If you have enabled Option Strict you will see a warning on the line ElseIf inArray(0) Is Nothing Then that late binding is not allowed if using Option Strict On.  





Regions 

Please read are-regions-an-antipattern-or-code-smell  


  Is there a good use for regions?
  
  No. There was a legacy use: generated code. Still, code generation
  tools just have to use partial classes instead. If C# has regions
  support, it's mostly because this legacy use, and because now that too
  many people used regions in their code, it would be impossible to
  remove them without breaking existent codebases.
  
  Think about it as about goto. The fact that the language or the IDE
  supports a feature doesn't mean that it should be used daily. StyleCop
  SA1124 rule is clear: you should not use regions. Never.






Hungarian notation  

The parameter name inArray is a sign, that you are misusing the original intention. Please read this: what-is-the-benefit-of-not-using-hungarian-notation  

And don't forget to read the reffered links.  




That beeing said let us check how we could enhance this method by grouping the conditions together.  

By using OrElse or AndAlsowe can short circuit conditions, which means that if a conditionA is true the conditionB won't be evaluated. like  

If conditionA OrElse conditionB Then  

End If  


If we invert the conditions we can simplify the whole method to  

Module Module2

    &lt;Extension()&gt;
    Public Function IsAllocated(ByVal inArray As System.Array) As Boolean

        Return Not ((inArray Is Nothing) OrElse (inArray.Length = 0) OrElse (inArray.GetValue(0) Is Nothing))

    End Function

End Module