Source: https://www.kau.edu.sa/files/830/files/55533_c_sharp_programming.pdf