using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Calculator { public partial class MainWindow : Window { float newNumber; float oldNumber; string lastAction; public MainWindow() { InitializeComponent(); } #region Number buttons private void number0_Click(object sender, RoutedEventArgs e) { newNumber *= 10; writeNumber.Content = newNumber.ToString(); } private void number1_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 1; writeNumber.Content = newNumber.ToString(); } private void number2_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 2; writeNumber.Content = newNumber.ToString(); } private void number3_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 3; writeNumber.Content = newNumber.ToString(); } private void number4_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 4; writeNumber.Content = newNumber.ToString(); } private void number5_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 5; writeNumber.Content = newNumber.ToString(); } private void number6_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 6; writeNumber.Content = newNumber.ToString(); } private void number7_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 7; writeNumber.Content = newNumber.ToString(); } private void number8_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 8; writeNumber.Content = newNumber.ToString(); } private void number9_Click(object sender, RoutedEventArgs e) { newNumber *= 10; newNumber += 9; writeNumber.Content = newNumber.ToString(); } #endregion #region Function buttons private void clear_Click(object sender, RoutedEventArgs e) { newNumber = 0f; oldNumber = 0f; displayNumber(); } private void plus_Click(object sender, RoutedEventArgs e) { oldNumber += newNumber; newNumber = 0; lastAction = "plus"; sign.Content = "+"; displayNumber(); } private void minus_Click(object sender, RoutedEventArgs e) { oldNumber = oldNumber - newNumber; newNumber = 0; lastAction = "minus"; sign.Content = "-"; displayNumber(); } private void multiply_Click(object sender, RoutedEventArgs e) { if (oldNumber != 0f) { oldNumber *= newNumber; newNumber = 0; } else oldNumber = newNumber; lastAction = "multiply"; sign.Content = "*"; displayNumber(); } private void devide_Click(object sender, RoutedEventArgs e) { if (oldNumber != 0f) { oldNumber /= newNumber; newNumber = 0; } else oldNumber = newNumber; lastAction = "devide"; sign.Content = "/"; displayNumber(); } private void root_Click(object sender, RoutedEventArgs e) { newNumber = (float)Math.Sqrt(newNumber); displayNumber(); } private void squared_Click(object sender, RoutedEventArgs e) { newNumber = newNumber * newNumber; displayNumber(); } private void equal_Click(object sender, RoutedEventArgs e) { if (lastAction == "plus") plus_Click(sender, e); else if (lastAction == "minus") minus_Click(sender, e); else if (lastAction == "multiply") multiply_Click(sender, e); else if (lastAction == "devide") devide_Click(sender, e); displayNumber(); } #endregion #region Multiple call private void displayNumber() { writeNumber.Content = newNumber.ToString(); lastNumber.Content = oldNumber.ToString(); } #endregion } }
Jakiś czas temu zainteresowałem się C#
Aktualnie jestem na etapie wstępu do aplikacji okienkowych (miałem już "doświadczenia" z pisaniem programów w Unity3D oraz ASP.NET MVC)
Jak oceniacie taki kod? Co można skrócić, co robię źle? Co można poprawić?