public static void Main()
SingletonCredentials c = SingletonCredentials.getInstance();
SingletonCredentials c2 = SingletonCredentials.getInstance();
Credentials c3 = new Credentials();
Credentials c4 = new Credentials();
public static void doSomething() {
SingletonCredentials c = SingletonCredentials.getInstance();
Credentials c2 = new Credentials();
public static void doSomethingElse(AbstractCredentials c) {
public class SingletonCredentials : AbstractCredentials{
private static SingletonCredentials instance;
private SingletonCredentials() {}
public static SingletonCredentials getInstance() {
instance = new SingletonCredentials();
public abstract class AbstractCredentials {
public string Val {get; protected set;}
Console.WriteLine("Val is not set");
public class Credentials : AbstractCredentials {