Последний этап проекта: понял, что некоторые переменные должны быть объявлены в классе form1, чтобы он был доступен для других частей программы; однако одна важная переменная, которая используется для расчета, продолжает возвращать следующую ошибку: Error 1 The contextual keyword 'var' may only appear within a local variable declaration
. Однако если я изменяю тип данных на int, мне говорят, что int
не содержит определения SUM, которое я использую для расчета оплаты. Я использую MVS 2010 CODE:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
List<Items> STOCK = new List<Items>();
int selecteditems = new List<Items>();
decimal subt;
decimal GCT = 16.50m;
decimal GCTamt;
decimal total;
public Form1()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
this.STOCK = new List<Items>
{
new Items{ id = 1, Name = "Bun", Price = 100},
new Items{ id = 2, Name = "Soda", Price = 80},
new Items{ id = 3, Name = "Cheese", Price =70},
new Items{ id = 4, Name = "Tissue", Price = 50},
new Items{ id = 5, Name = "Fabuloso", Price = 140},
new Items{ id = 6, Name = "Grace Mackerel", Price = 90},
new Items{ id = 7, Name = "Rice", Price = 50},
new Items{ id = 8, Name = "Flour", Price = 40},
new Items{ id = 9, Name = "Sugar", Price = 30},
};
}
public class Items
{
public int id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
private void textBox1_Enter(object sender, EventArgs e)
{
StringBuilder strBuilder = new StringBuilder();
STOCK.ForEach(x => strBuilder.Append(string.Format("ID {0} - Name: {1} Price: {2:C2}", x.id, x.Name, x.Price)));
menu.Text = menu.Text + strBuilder.ToString();
}
private void button_Click(object sender, EventArgs e)
{
Button B = (Button)sender;
Disp.Text = Disp.Text + B.Text;
}
private void Enter_Click(object sender, EventArgs e)
{
var STOCKDict = STOCK.ToDictionary(x => x.id);
int id;
do
{
if (Disp.Text == "x")
if (!int.TryParse(Disp.Text, out id))
{
Disp2.Text = ("Enter number or 'x' ");
}
else
{
if (STOCKDict.ContainsKey(id))
{
var item = STOCKDict[id];
selecteditems.Add(item);
Disp2.Text = Disp2.Text + (item.Name);
}
else
{
Disp2.Text = (id + " is not available");
}
Disp.Text = " ";
}
} while (true);
}
public void subtot_TextChanged( object sender, EventArgs e)
{
subt = selecteditems.Sum(i=>i.Price);
GCT = 16.50m;
GCTamt = (subt*GCT/100);
total = subt+GCTamt;
subtot.Text = subtot.Text + subt;
}
public void TaxDisp_TextChanged(object sender, EventArgs e)
{
TaxDisp.Text = TaxDisp.Text+GCTamt;
}
}
}