static void Main(string[] args) { Clear(); WriteLine("-- People App --"); var bob = new Person(); bob.Name = "Bob Smith"; bob.DateOfBirth = new DateTime(1956, 8, 24); WriteLine($"{bob.Name} was born on " + $"{bob.DateOfBirth:dddd, d MMMM yyyy}"); WriteLine($"{bob.Name} was born on {bob.HomePlanet}"); WriteLine($"{bob.Name} is a {Person.Species}"); bob.Children.Add(new Person { Name = "Alfred" }); bob.Children.Add(new Person { Name = "Jessica" }); for (int child = 0; child < bob.Children.Count; child++) { WriteLine($"{bob.Children[child].Name} is Bob's Child."); } BankAccount.InterestRate = 0.012M; // Store a shared value var alfredAccount = new BankAccount(); // Instance BankAccount alfredAccount.AccountName = "Mrs. Alfred"; alfredAccount.Balance = 2400; WriteLine(format: "{0} earned {1:C} interest.", arg0: alfredAccount.AccountName, arg1: alfredAccount.Balance * BankAccount.InterestRate); var jessicaAccount = new BankAccount(); // Instance BankAccount jessicaAccount.AccountName = "Ms. Jessica"; jessicaAccount.Balance = 5600; WriteLine(format: "{0} earned {1:C} interest.", arg0: jessicaAccount.AccountName, arg1: jessicaAccount.Balance * BankAccount.InterestRate); // Blank Person for Constructor var blankPerson = new Person(); WriteLine(format: "{0} of {1} was created at {2:hh:mm:ss} " + "on a {2:dddd}.", arg0: blankPerson.Name, arg1: blankPerson.HomePlanet, arg2: blankPerson.Instantiated); var gunny = new Person("Gunny", "Mars"); WriteLine(format: "{0} of {1} was created at {2:hh:mm:ss} " + "on a {2:dddd}.", arg0: gunny.Name, arg1: gunny.HomePlanet, arg2: gunny.Instantiated); // Defauls var thingOfDefault = new ThingOfDefaults(); WriteLine("Default Values"); WriteLine($"{thingOfDefault.Population} - {thingOfDefault.When} - " + $"{thingOfDefault.Name} - {thingOfDefault.People}"); // METHOD CALL bob.WriteToConsole(); WriteLine(bob.GetOrigin()); WriteLine(new string('-', 35)); // Return Value var toReturn = new Processor(); var result = toReturn.GetTheData(); WriteLine(result.Text); WriteLine(result.Number); WriteLine(new string('-', 35)); (string, int)fruit = bob.GetFruit(); WriteLine($"{fruit.Item1}, {fruit.Item2} there are."); WriteLine(new string('-', 35)); var thing1 = ("Neville", 4); var thing2 = (bob.Name, bob.Children.Count); WriteLine($"ThingOne = {thing1.Item1} has {thing1.Item2} children."); WriteLine($"ThingTwo = {thing2.Name} has {thing2.Count} children."); WriteLine(new string('-', 35)); (string name, int age)deconstruct = bob.GetPerson(); WriteLine($"{deconstruct.name} is {deconstruct.age} yeas old!"); WriteLine(new string('-', 35)); WriteLine(bob.SayHello("Deve")); WriteLine(bob.SayHelloTo("Firat")); WriteLine(gunny.DirtyTalk("Zombi")); WriteLine(gunny.SaySomething("Blah Blash!")); WriteLine(); WriteLine(new string('-', 35)); int a = 10; int b = 20; int c = 30; WriteLine($"Before: a = {a}, b = {b}, c = {c}"); bob.PassingParameters(a, ref b, out c); WriteLine($"After: a = {a}, b = {b}, c = {c}"); WriteLine(); WriteLine(new string('-', 35)); var sam = new Person { Name = "Sam", DateOfBirth = new DateTime(1972, 1, 27) }; sam.FavoriteIceCream = "Chocolate Fudge"; sam.FavoritePrimaryColor = "Red"; WriteLine($"Sam's favorite ice-cream flavor is {sam.FavoriteIceCream}"); WriteLine($"Sam's favorite primary color is {sam.FavoritePrimaryColor}"); WriteLine(sam.Origin); WriteLine(sam.Greeting); WriteLine($"Sam {sam.Age} yeas old!"); WriteLine(); WriteLine(new string('-', 35)); sam.Children.Add(new Person { Name = "Charlie" }); sam.Children.Add(new Person { Name = "Ella" }); WriteLine($"Sam's first child is {sam.Children[0].Name}"); WriteLine($"Sam's second child is {sam.Children[1].Name}"); WriteLine($"Sam's first child is {sam[0].Name}"); WriteLine($"Sam's second child is {sam[1].Name}"); WriteLine(); WriteLine(new string('-', 35)); // ----------------------------------------------------------------- object[] passengers = { new FirstClassPassenger { AirMiles = 1_419 },
static void Main(string[] args) { Person bob = new Person(); WriteLine(bob.ToString()); bob.Name = "Bob Smith"; bob.DateOfBirth = new DateTime(1965, 12, 2); bob.FavoriteAncientWonder = WondersOfTheAncientWorld.StatueOfZeusAtOlympia; WriteLine( format: "{0} was born on {1:dddd, dd/MM/yyyy}", arg0: bob.Name, arg1: bob.DateOfBirth); WriteLine(format: "{0}'s favorite wonder is {1}. Its integer is {2}.", arg0: bob.Name, arg1: bob.FavoriteAncientWonder, arg2: (int)bob.FavoriteAncientWonder); bob.Children.Add(new Person()); bob.Children.Add(new Person { Name = "Zoe" }); WriteLine( $"{bob.Name} has {bob.Children.Count} children:"); for (int child = 0; child < bob.Children.Count; child++) { WriteLine($" {bob.Children[child].Name}"); } WriteLine($"{bob.Name}'s 1st child is {bob.Children[0].Name}"); // indexer WriteLine($"{bob.Name}'s 1st child is {bob[0].Name}"); // const field WriteLine( $"{bob.Name} is a {Person.Species}"); // Add Friend bob.addFriend(new Person("Edward", "Earth")); bob.addFriend(new Person("Edwin", "Mars")); List<Person> allFriends = bob.getFriend(); for(int idx=0; idx< allFriends.Count; idx++){ WriteLine($"{bob.Name}'s friend {idx}: {allFriends[idx].Name}"); } for(int idx=0; idx< allFriends.Count; idx++){ string idxString = idx.ToString(); WriteLine($"{bob.Name}'s friend {idx}: {bob[idxString].Name}"); } // calling Method WriteLine("** WriteLine(bob.GetOrigin())"); WriteLine(bob.GetOrigin()); WriteLine("** bob.WriteToConsole()"); bob.WriteToConsole(); var fruit = bob.GetFruit(); WriteLine($"{fruit.Item1}, {fruit.Item2} there are."); var fruitNamed = bob.GetNamedFruit(); WriteLine($"{fruitNamed.Name}, {fruitNamed.Number} there are."); (string fruitName, int fruitNumber) = bob.GetFruit(); WriteLine($"Deconstructed: {fruitName}, {fruitNumber}"); (string fruitName, int fruitNumber) dcFruit = bob.GetFruit(); WriteLine($"Deconstructed 2: {dcFruit.fruitName}, {dcFruit.fruitNumber}"); WriteLine(bob.SayHello()); WriteLine(bob.SayHello("Edward")); WriteLine(bob.OptionalParameters()); WriteLine(bob.OptionalParameters("Jump!", 98.5)); WriteLine(bob.OptionalParameters(command: "ALL!", active: false)); int d = 10; int e = 20; WriteLine( $"Before: d = {d}, e = {e}, f doesn't exist yet!"); // simplified C# 7.0 syntax for the out parameter bob.PassingParameters(d, ref e, out int f); WriteLine($"After: d = {d}, e = {e}, f = {f}"); var alice = new Person { Name = "Alice Jones", DateOfBirth = new DateTime(1998, 3, 7) }; WriteLine( format: "{0} was born on {1:dddd, dd/MM/yyyy}", arg0: alice.Name, arg1: alice.DateOfBirth); var blankPerson = new Person(); WriteLine(format:"{0} of {1} was created at {2:hh:mm:ss} on a {2:dddd}.", arg0: blankPerson.Name, arg1: blankPerson.HomePlanet, arg2: blankPerson.Instantiated); var gunny = new Person(initialName:"Gunny", homePlanet:"Mars"); WriteLine( format:"{0} of {1} was created at {2:hh:mm:ss} on a {2:dddd}.", arg0: gunny.Name, arg1: gunny.HomePlanet, arg2: gunny.Instantiated); // Things of Default var default1 = new ThingOfDefaults(); WriteLine("** Thing of Default"); WriteLine( format: "int: {0}, DateTime:{1}, string:{2}, {3},", default1.Population, default1.When, default1.Name, default1.People.Count ); // ---------------------- // BankAccount // ---------------------- BankAccount.InterestRate = 0.012M; // store a shared value var jonesAccount = new BankAccount { AccountName= "Mrs. Jones", Balance= 2400 }; WriteLine(format: "{0}'s Balanace is {1:N} earned {2:C} interest.", arg0: jonesAccount.AccountName, arg1: jonesAccount.Balance, arg2: jonesAccount.Balance * BankAccount.InterestRate); var gerrierAccount = new BankAccount(); gerrierAccount.AccountName = "Ms. Gerrier"; gerrierAccount.Balance = 98; WriteLine(format: "{0}'s Balanace is {1:N} earned {2:C} interest.", arg0: gerrierAccount.AccountName, arg1: gerrierAccount.Balance, arg2: gerrierAccount.Balance * BankAccount.InterestRate); // Try Property var sam = new Person(initialName:"Sam", homePlanet:"Mars", initBirth: new DateTime(1972, 1, 27)); WriteLine(sam.Origin); WriteLine(sam.Greeting); WriteLine(sam.Age); sam.FavoriteIceCream = "Stars"; WriteLine($"{sam.Name}'s favorite icecream is {sam.FavoriteIceCream}"); sam.FavoritePrimaryColor="red"; WriteLine($"{sam.Name}'s favorite Color is {sam.FavoritePrimaryColor}"); try{ sam.FavoritePrimaryColor="yellow"; } catch (ArgumentException argEx){ WriteLine($"{argEx.GetType()} says {argEx.Message}"); } // -------------------------------------- // Flight Patterns(object pattern matching) // -------------------------------------- WriteLine("// -------------------------------"); WriteLine("//Flight Patterns(object pattern matching"); WriteLine("// -------------------------------"); var passengers = new object[5]{ new FirstClassPassenger { AirMiles = 1_419 },