Можно использовать переменную как глобальную переменную, доступ к которой может быть получен любым методом в форме в Visual - PullRequest
0 голосов
/ 06 февраля 2020

Последний этап проекта: понял, что некоторые переменные должны быть объявлены в классе 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; 
        }


        }






    }



Ответы [ 2 ]

0 голосов
/ 06 февраля 2020
List<Items> selecteditems = new List<Items>();

selectedItems будет содержать List<Items> и должен быть объявлен как таковой.

0 голосов
/ 06 февраля 2020

Если вы говорите о selecteditems, вы не хотите, чтобы это было int. Вы назначаете ему new List<Items>(), поэтому тип должен быть List<Items>:

List<Items> selecteditems = new List<Items>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...