Notes

Notes

  • A class type that is declared to take type parameters is called a generic class type.

Input, error handling, and compute stats

using System;
using System.Collections.Generic;

namespace dotnet_example
{
  class Program
  {
    public int AddTwoNumbers(int number1, int number2)
    {
      return number1 + number2;
    }

    static void Main(string[] args)
    {
      var grades = new List<double>();
      var sum = 0.0;
      var minGrade = 0.0;
      var maxGrade = 100.0;
      var highest = minGrade;
      var lowest = maxGrade;
      double avg = default;

      while (true)
      {
        Console.WriteLine("Enter a grade ('q' to exit)");
        var input = Console.ReadLine();
        if (input == "q")
        {
          break;
        }
        try
        {
          var grade = double.Parse(input);
          validateGrade(grade);
        }
        catch (FormatException ex)
        {
          printWarning(ex.Message);
        }
        catch (ArgumentException ex)
        {
          printWarning(ex.Message);
        }
      }
      setStats();
      printStats();

      void validateGrade(double grade)
      {
        if (grade >= 0 && grade <= 100)
        {
          grades.Add(grade);
        }
        else
        {
          throw new ArgumentException("Enter a number between 0-100");
        }
      }

      void setStats()
      {
        foreach (var grade in grades)
        {
          sum += grade;
          highest = Math.Max(grade, highest);
          lowest = Math.Min(grade, lowest);
        }
        avg = sum / grades.Count;
      }

      void printStats()
      {
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine($"All Grades: {String.Join(",", grades)}");
        Console.WriteLine($"Sum: {sum:N2}");
        Console.WriteLine($"Average: {avg:N2}");
        Console.WriteLine($"Highest: {highest}");
        Console.WriteLine($"Lowest: {lowest}");
        Console.ResetColor();
      }

      void printWarning(string msg)
      {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(msg);
        Console.ResetColor();
      }
    }
  }
}


// Output
// All Grades: 50,60,70
// Sum: 180.00
// Average: 60.00
// Highest: 70
// Lowest: 50

Debugging

Array

// Unlike JavaScript, Array needs to be iterated in order to console log
foreach (string company in companies)
{
  Console.WriteLine(company);
}

Last updated

Was this helpful?