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ć?