public class CommandLineValueParameter<T> : CommandLineParameter
where T : IConvertible
Public Class CommandLineValueParameter(Of T As IConvertible)
Inherits CommandLineParameter
Dim instance As CommandLineValueParameter(Of T)
generic<typename T>
where T : IConvertible
public ref class CommandLineValueParameter : public CommandLineParameter
type CommandLineValueParameter<'T when 'T : IConvertible> =
class
inherit CommandLineParameter
end
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
Module Module1
Dim params As New CommandLineValueParameterCollection From {
New CommandLineValueParameter(Of String)("ParameterName1") With {
.Prefix = CommandLineParameterPrefix.Slash,
.Suffix = CommandLineParameterSuffix.EqualsSign,
.ShortName = "Param1",
.DefaultValue = "",
.IsOptional = False
},
New CommandLineValueParameter(Of Boolean)("ParameterName2") With {
.Prefix = CommandLineParameterPrefix.Slash,
.Suffix = CommandLineParameterSuffix.EqualsSign,
.ShortName = "Param2",
.DefaultValue = False,
.IsOptional = True
},
New CommandLineValueParameter(Of Integer)("ParameterName3") With {
.Prefix = CommandLineParameterPrefix.Slash,
.Suffix = CommandLineParameterSuffix.EqualsSign,
.ShortName = "Param3",
.DefaultValue = -1I,
.IsOptional = True
}
}
Public Function IsParameterAssignedInArgument(Of T As IConvertible)(ByVal parameter As CommandLineValueParameter(Of T), ByVal argument As String) As Boolean
Return (argument.StartsWith(parameter.FullName & parameter.GetSuffixChar(), StringComparison.OrdinalIgnoreCase) OrElse
argument.StartsWith(parameter.FullShortName & parameter.GetSuffixChar(), StringComparison.OrdinalIgnoreCase))
End Function
Public Sub SetParameterValue(Of T As IConvertible)(ByRef parameter As CommandLineValueParameter(Of T), ByVal argument As String)
If IsParameterAssignedInArgument(parameter, argument) Then
Dim value As String = argument.Substring(argument.IndexOf(parameter.GetSuffixChar()) + 1).Trim(ControlChars.Quote)
If String.IsNullOrEmpty(value) Then
parameter.Value = parameter.DefaultValue
Else
Try
parameter.Value = DirectCast(Convert.ChangeType(value, parameter.DefaultValue.GetType()), T)
Catch ex As InvalidCastException
Throw
Catch ex As FormatException
Throw
End Try
End If
End If
End Sub
Sub Main()
' Parse command-line arguments to set the values of the parameters.
ParseArguments(params, AddressOf OnSyntaxError, AddressOf OnMissingParameterRequired)
' Display the parameters and each value assigned.
For Each param As CommandLineValueParameter(Of IConvertible) In params
Console.WriteLine(param.ToString())
Next
End Sub
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Loop through all the command-line arguments of this application.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="cmds">
''' The commandline parameters.
''' </param>
'''
''' <param name="callbackSyntaxError">
''' An encapsulated method that is invoked if a syntax error is found in one of the arguments.
''' </param>
'''
''' <param name="callbackMissingRequired">
''' An encapsulated method that is invoked if a required parameter is missing in the arguments.
''' </param>
''' ----------------------------------------------------------------------------------------------------
Friend Sub ParseArguments(ByVal cmds As CommandLineValueParameterCollection,
ByVal callbackSyntaxError As Action(Of CommandLineValueParameter(Of IConvertible)),
ByVal callbackMissingRequired As Action(Of CommandLineValueParameter(Of IConvertible)))
ParseArguments(cmds, Environment.GetCommandLineArgs.Skip(1), callbackSyntaxError, callbackMissingRequired)
End Sub
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Loop through all the command-line arguments of this application.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="cmds">
''' The commandline parameters.
''' </param>
'''
''' <param name="args">
''' The collection of commandline arguments to examine.
''' </param>
'''
''' <param name="callbackSyntaxError">
''' An encapsulated method that is invoked if a syntax error is found in one of the arguments.
''' </param>
'''
''' <param name="callbackMissingRequired">
''' An encapsulated method that is invoked if a required parameter is missing in the arguments.
''' </param>
''' ----------------------------------------------------------------------------------------------------
Friend Sub ParseArguments(ByVal cmds As CommandLineValueParameterCollection,
ByVal args As IEnumerable(Of String),
ByVal callbackSyntaxError As Action(Of CommandLineValueParameter(Of IConvertible)),
ByVal callbackMissingRequired As Action(Of CommandLineValueParameter(Of IConvertible)))
If Not (args.Any()) Then
PrintHelp()
End If
' Required parameters. Not optional ones.
Dim cmdRequired As List(Of CommandLineValueParameter(Of IConvertible)) =
(From cmd As CommandLineValueParameter(Of IConvertible) In cmds
Where Not cmd.IsOptional).ToList()
For Each arg As String In args
For Each cmd As CommandLineValueParameter(Of IConvertible) In cmds
If arg.Equals("/?") Then
PrintHelp()
End If
If IsParameterAssignedInArgument(cmd, arg) Then
If (cmdRequired.Contains(cmd)) Then
cmdRequired.Remove(cmd)
End If
Try
SetParameterValue(Of IConvertible)(cmd, arg)
Catch ex As Exception
callbackSyntaxError.Invoke(cmd)
End Try
End If
Next cmd
Next arg
If (cmdRequired.Any()) Then
callbackMissingRequired.Invoke(cmdRequired.First())
End If
End Sub
Friend Sub OnSyntaxError(ByVal cmd As CommandLineValueParameter(Of IConvertible))
Console.WriteLine(String.Format("[X] Syntax error in parameter: {0})", cmd.FullName))
Environment.Exit(exitCode:=1)
End Sub
Friend Sub OnMissingParameterRequired(ByVal cmd As CommandLineValueParameter(Of IConvertible))
Console.WriteLine(String.Format("[X] Parameter {0} is required. ", cmd.FullName))
Environment.Exit(exitCode:=1)
End Sub
Friend Sub PrintHelp()
Dim sb As New Global.System.Text.StringBuilder
sb.AppendLine("Commands Help:")
For Each param As CommandLineValueParameter(Of IConvertible) In params
sb.AppendFormat("{0} {{{1}}}", param.FullName, param.DefaultValue.GetType().Name)
sb.AppendLine()
Next
Console.WriteLine(sb.ToString())
Environment.Exit(exitCode:=1)
End Sub
End Module
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
CommandLineValueParameterT | Initializes a new instance of the CommandLineValueParameterT class. |
DefaultValue | Gets or sets the default parameter's value. This value should be take into account if, after parsing the command-line arguments of the application, Value is , meaning that the end-user did not assigned any value to this parameter. |
FullName |
Gets the full name of the parameter including the prefix.
For Example: "/ParameterName"
(Inherited from CommandLineParameter) |
FullShortName |
Gets the full short name of the parameter including the prefix.
For Example: "/ParameterShortName"
(Inherited from CommandLineParameter) |
IsOptional |
Gets or sets a value indicating whether this parameter is required for the application.
A value of means the user needs to pass this parameter to the application.
A value of means this is an optional parameter so no matter if the user pass this parameter to the application.
(Inherited from CommandLineParameter) |
Name |
Gets the name of the parameter.
(Inherited from CommandLineParameter) |
Prefix |
Gets or sets the prefix character that indicates the start of the parameter's name.
For example: "/ParameterName" where "/" is the prefix.
(Inherited from CommandLineParameter) |
ShortName |
Gets or sets the short name of the parameter.
A short name should be an abbreviated name of the parameter. A short name is optional and can de null.
(Inherited from CommandLineParameter) |
Suffix | Gets or sets the suffix character that delimits the parameter's name from the parameter's value. For example: "/ParameterName=Value" where "/" is the prefix and "=" the suffix. |
Value | Gets or sets the parameter's value defined by the end-user. This value should be initially before parsing the commandline arguments of the application. The value of the parameter should be assigned by the end-user when passing an argument to the application. To set a default value for this parameter, use DefaultValue property instead. |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode | Serves as the default hash function. (Inherited from Object) |
GetPrefixChar |
Gets the prefix character that indicates the start of the parameter's name.
For Example: "/"
(Inherited from CommandLineParameter) |
GetSuffixChar | Gets the suffix character that delimits the parameter's name from the parameter's value. For Example: "=" |
GetType | Gets the Type of the current instance. (Inherited from Object) |
ToString | Returns a String that represents this CommandLineValueParameterT. |
(CommandLineValueParameterBoolean to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterByte to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterChar to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterDateTime to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterDecimal to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterDouble to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterIConvertible to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterInt16 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterInt32 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterInt64 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterSByte to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterSingle to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterString to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterUInt16 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterUInt32 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
(CommandLineValueParameterUInt64 to CommandLineValueParameterT) | Performs an implicit conversion from CommandLineValueParameterT to CommandLineValueParameterT. |
CanConvertTo |
Determines whether the source object can be converted to the specified target type.
(Defined by ObjectExtensions) |
CanConvertToT |
Determines whether the source object can be converted to the specified target type.
(Defined by ObjectExtensions) |
ConvertToT |
Converts an object to the specified target type.
If the conversion fails, an exception is thrown.
(Defined by ObjectExtensions) |
ConvertToT |
Converts an object to the specified target type.
If the conversion fails, returns the specified default value.
(Defined by ObjectExtensions) |
IsDisposable |
Determines whether the specified object is a disposable type
(i.e., it implements IDisposable interface).
(Defined by ObjectExtensions) |
Speak |
Speaks the string representation of the source object by using the
operating system integrated text-to-speech synthesizer.
(Defined by ObjectExtensions) |
Speak |
Speaks the string representation of the source object by using the
operating system integrated text-to-speech synthesizer.
(Defined by ObjectExtensions) |
ThrowIfNullTException |
Throws the specified exception if the source object is null.
(Defined by ObjectExtensions) |