using System;
struct FieldLikeSingleton
{
private class FieldLikeSingletonImpl
{
internal FieldLikeSingletonImpl()
{
Console.WriteLine("FieldLikeSingleton.ctor");
}
public void Foo()
{
Console.WriteLine("Foo");
}
}
private static FieldLikeSingletonImpl instance = new FieldLikeSingletonImpl();
public static FieldLikeSingleton Instance { get; }
public void Foo()
{
instance.Foo();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Inside Main()");
if (args.Length == 42)
{
FieldLikeSingleton.Instance.Foo();
}
}
}
dXNpbmcgU3lzdGVtOwoKc3RydWN0IEZpZWxkTGlrZVNpbmdsZXRvbgp7Cglwcml2YXRlIGNsYXNzIEZpZWxkTGlrZVNpbmdsZXRvbkltcGwKCXsKCSAgICBpbnRlcm5hbCBGaWVsZExpa2VTaW5nbGV0b25JbXBsKCkKCSAgICB7CgkgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJGaWVsZExpa2VTaW5nbGV0b24uY3RvciIpOwoJICAgIH0KCSAKCSAgICBwdWJsaWMgdm9pZCBGb28oKQoJICAgIHsKCSAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkZvbyIpOwoJICAgIH0JCQoJfQoJCglwcml2YXRlIHN0YXRpYyBGaWVsZExpa2VTaW5nbGV0b25JbXBsIGluc3RhbmNlID0gbmV3IEZpZWxkTGlrZVNpbmdsZXRvbkltcGwoKTsgCiAgICBwdWJsaWMgc3RhdGljIEZpZWxkTGlrZVNpbmdsZXRvbiBJbnN0YW5jZSB7IGdldDsgfQogICAgCiAgICBwdWJsaWMgdm9pZCBGb28oKQogICAgewogICAgICAgIGluc3RhbmNlLkZvbygpOwogICAgfQp9CiAKY2xhc3MgUHJvZ3JhbQp7CiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkluc2lkZSBNYWluKCkiKTsKICAgICAgICAKICAgICAgICBpZiAoYXJncy5MZW5ndGggPT0gNDIpCiAgICAgICAgewogICAgICAgICAgICBGaWVsZExpa2VTaW5nbGV0b24uSW5zdGFuY2UuRm9vKCk7CiAgICAgICAgfQogICAgfQp9