Some
не ключевое слово. Существует option
тип однако, который является дизъюнктным объединением, содержащим две вещи:
Some
, который содержит значение некоторого типа. None
, который представляет отсутствие значения. Это определяется как:
type 'a option =
| None
| Some of 'a
Это действует отчасти как nullable тип, где Вы хотите иметь объект, который может содержать значение некоторого типа или не иметь никакого значения вообще.
let stringRepresentationOfSomeObject (x : 'a option) =
match x with
| None -> "NONE!"
| Some(t) -> t.ToString()
Если вы измените эту основную подпись по умолчанию:
[STAThread]
static void Main()
На это:
[STAThread]
static void Main(String[] args)
Вы можете получить доступ к переменным командной строки, как из обычного консольного приложения, или если вы хотите получить к ним доступ из в другом месте вы можете использовать:
System.Environment.GetCommandLineArgs();
[STAThread]
static void Main(string[] args)
{
if (args.Length == 0)
{
// Run the application in a windows form
Application.Run(new MainForm( ));
}
else
{
// Run app from CLI
Console.WriteLine(DoStuff(args));
}
}
Да, он должен работать, чтобы создать проект как обычный проект приложения Windows. Затем в program.cs перед запуском окна вызовите Environment.GetCommandLineArgs ()
, чтобы получить аргументы командной строки и проанализировать их, чтобы сделать то, что вы хотите.