-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Description
The Split method shows OverloadDefinitions in this order
OverloadDefinitions
string[] Split(char separator)
string[] Split(char separator, System.StringSplitOptions options)
string[] Split(char separator, int count, System.StringSplitOptions options)
string[] Split(Params char[] separator)
string[] Split(char[] separator, int count)
string[] Split(char[] separator, System.StringSplitOptions options)
string[] Split(char[] separator, int count, System.StringSplitOptions options)
string[] Split(string separator)
string[] Split(string separator, System.StringSplitOptions options)
string[] Split(string separator, int count, System.StringSplitOptions options)
string[] Split(string[] separator, System.StringSplitOptions options)
string[] Split(string[] separator, int count, System.StringSplitOptions options)
When one tries to use the Count parameter, it is first interpreted as a System.StringSplitOptions value.
Since enum values are [int] under the cover I guess.
As a result, this $t.Split(' ',6) will produce the following error:
Cannot convert argument "options", with value: "6", for "Split" to type "System.StringSplitOptions": "Cannot convert value "6" to type
"System.StringSplitOptions" due to enumeration values that are not valid. Specify one of the following enumeration values and try again. The
possible enumeration values are "None,RemoveEmptyEntries"."
At line:1 char:1
- $t.split(' ',6)
-
+ CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
When the Count parameter is cast to [int], no issue ($t.Split(' ',[int]6)
In PS v5.1, the overloaddefinitions have a different order, and this issue doesn't appear.
OverloadDefinitions
string[] Split(Params char[] separator)
string[] Split(char[] separator, int count)
string[] Split(char[] separator, System.StringSplitOptions options)
string[] Split(char[] separator, int count, System.StringSplitOptions options)
string[] Split(string[] separator, System.StringSplitOptions options)
string[] Split(string[] separator, int count, System.StringSplitOptions options)
The Crontab demo module experiences this error as well in line 38 in Crontab.psm1.
I tested with v6.0.0-alpha.13