static void Main1(string[] args) { var factory = new SavingsAcctFactory() as ICreditUnionFactory; var citiAcct = factory.GetSavingsAccount("CITI-321"); var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); Console.WriteLine($"My citi balance is ${citiAcct.Balance} and national balance is ${nationalAcct.Balance}"); }
static void Main(string[] args) { var factory = new SavingsAcctFactory() as ICreditUnionFactory; var cityAcc = factory.GetSavingsAccount("city"); var nationAcc = factory.GetSavingsAccount("national"); Console.WriteLine($"City {cityAcc.Balance} and national {nationAcc.Balance}"); Console.ReadLine(); }
public static void Main() { var factory = new SavingsAcctFactory() as ICreditUnionFactory; var cityAcct = factory.GetSavingsAccount("CITY-321"); var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); Console.WriteLine($"My citu balance is ${cityAcct.Balance}" + $" and national balance is ${nationalAcct.Balance}"); }
public static void Main() { var factory = new SavingsAcctFactory(); var cityAcct = factory.GetSavingsAccount("CITY-321"); var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); var globalAcct = factory.GetSavingsAccountWithRecursion("GLOBAL-123"); Console.WriteLine(globalAcct.Balance); Console.WriteLine($"My city balance is ${cityAcct.Balance}" + $" and national balance is ${nationalAcct.Balance}"); }
static void Main(string[] args) { //pretend two banks merged, with two savings accounts. //create a new SavingsAccount. //the Factory figures out kind of account to create based on what gets passed to it. var factory = new SavingsAcctFactory() as ICreditUnionFactory; var citiAcct = factory.GetSavingsAccount("CITI-321"); var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); Console.WriteLine($"My citi balance is ${citiAcct.Balance}" + $" and national balance is ${nationalAcct.Balance}"); }
static void Main(string[] args) { //create a factory of type IcreditUnion var factory = new SavingsAcctFactory() as ICreditUnionFactory; //create a city savings account object by feeding in city string var citiAcct = factory.GetSavingsAccount("CITI-321"); //create national savings account by passing in national string to factory var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); //use formatted string by using $ and {} to display incline values. Console.WriteLine($"My citi balance is ${citiAcct.Balance}" + $" and national balance is ${nationalAcct.Balance}"); Console.WriteLine("Hit any key to exit....."); Console.ReadKey(); }
//Added Comments Test static void Main(string[] args) { //Cannot create an instance of the abstract class or interface //var factory = new ICreditUnionFactory(); //Convert type SavingsAcctFactory to ICreditUnionFactory //via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion //var factory = new SavingsAcctFactory(); //ICreditUnionFactory factory = new SavingsAcctFactory(); var factory = new SavingsAcctFactory() as ICreditUnionFactory; Console.WriteLine(factory.GetType()); //FactoryMethod.SavingsAcctFactory //Local Variable ICreditUnionFactory creditunionfactory; //Console.WriteLine(creditunionfactory.GetType()); //Use of unassigned local variable 'creditunionfactory' creditunionfactory = null; //Console.WriteLine(creditunionfactory.GetType()); //System.NullReferenceException: 'Object reference not set to an instance of an object.' creditunionfactory was null. creditunionfactory = factory; //Convert type SavingsAcctFactory to ICreditUnionFactory Console.WriteLine(factory.GetType()); //FactoryMethod.SavingsAcctFactory var citiAcct = factory.GetSavingsAccount("CITI-321"); var nationalAcct = factory.GetSavingsAccount("NATIONAL-987"); Console.WriteLine($"My citi balance is ${citiAcct.Balance}" + $" and national balance is ${nationalAcct.Balance}"); // Interface Basics var factory2 = new SavingsAcctFactory(); var f2 = factory2.GetSavingsAccount(null); var f22 = factory2.GetSavingsAccount2(null); var factory3 = new SavingsAcctFactory() as ICreditUnionFactory2; var f3 = factory3.GetSavingsAccount2(null); //ICreditUnionFactory2' does not contain a definition for 'GetSavingsAccount' and //no extension method 'GetSavingsAccount' accepting a first argument of type 'ICreditUnionFactory2' could be found(are you missing a using directive or an assembly reference //var f33 = factory3.GetSavingsAccount(null); Console.Read(); }