You’re right. [44, 13, 10] is an array literal. The compiler was incorrectly rejecting array literals when they were used as property defaults. This has now been fixed for the next release: https://feedback.objo.dev/bug/874
Both array declaration styles are supported:
Class Defaults
Property Values As Array(Of Integer) = [44, 13, 10]
Property Names() As String = ["alpha", "beta"]
End Class
Empty and nested array literals also work:
Property Items As Array(Of Integer) = []
Property Grid As Array(Of Array(Of Integer)) = [[1, 2], [3, 4]]
Array defaults may contain literal values, Nothing, enum members (including dot shorthand), named Colour constants, and other permitted compile-time constants. Runtime expressions such as [1 + 2] must still be assigned in the constructor.