0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
1

Использование переменных в других классах

10.03.2014, 18:43. Показов 3407. Ответов 5
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class povremennaya : Form1
        {
          
            public double stavka1;
            public double stavka2;
            public double stavka3;
            public double stavka4;
            public double stavka5;
            public double stavka6;
            public double stavka7;
            public double stavka8;
            public double stavka9;
            public double stavka10;
            public double stavka11;
            public double stavka12;
            public  void raschet()
            {
                                
                stavka1 = Convert.ToDouble(textBox2.Text) * 20.8 * 8;
                stavka2 = Convert.ToDouble(textBox3.Text) * 20.8 * 8;
                stavka3 = Convert.ToDouble(textBox4.Text) * 20.8 * 8;
                stavka4 = Convert.ToDouble(textBox5.Text) * 20.8 * 8;
                stavka5 = Convert.ToDouble(textBox6.Text) * 20.8 * 8;
                stavka6 = Convert.ToDouble(textBox7.Text) * 20.8 * 8;
                stavka7 = Convert.ToDouble(textBox8.Text) * 20.8 * 8;
                stavka8 = Convert.ToDouble(textBox9.Text) * 20.8 * 8;
                stavka9 = Convert.ToDouble(textBox10.Text) * 20.8 * 8;
                stavka10 = Convert.ToDouble(textBox11.Text) * 20.8 * 8;
                stavka11 = Convert.ToDouble(textBox12.Text) * 20.8 * 8;
                stavka12 = Convert.ToDouble(textBox13.Text) * 20.8 * 8;
            
            
            }
        }
в другом классе сделал так
C#
1
2
3
4
5
6
7
 povremennaya povremennaya = new povremennaya ();
 
            
           double b = (povremennaya.stavka1+ povremennaya.stavka2+ povremennaya.stavka3+
                            povremennaya.stavka4+ povremennaya.stavka5+ povremennaya.stavka6+
                           povremennaya.stavka7+ povremennaya.stavka8+ povremennaya.stavka9+ 
                           povremennaya.stavka10+ povremennaya.stavka11+ povremennaya.stavka12);
но значение b равно 0
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2014, 18:43
Ответы с готовыми решениями:

Использование класса, как типа в других классах
Помогите пожалуйста, я совсем запутался =( Задание Вы поймете по ходу, дальше. class Person ...

Использование Context в других классах
У меня есть диалоговое окно, в котором я использую список. Требуется считать этот список с...

Использование переменных из других функций
Как использовать переменные из одной функции в другой для записи и чтения?

Почему публичную переменную не видно в других классах
Д.д. следующий возник вопрос. Почему в данном коде возникает ошибка в строке 15. "Элемент R1 не...

5
159 / 151 / 73
Регистрация: 03.03.2014
Сообщений: 368
10.03.2014, 18:54 2
Естественно. Вы создаете новый объект в вашем классе и поля его равны нулю. В вашем другом классе можете сделать так:
Задать поле типа "povremennaya".
ОФФТОП: лучше сделайте список или массив вместо 12 переменных, тогда и сумму расписывать не придется.
И классные имена для переменных
1
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
10.03.2014, 19:18  [ТС] 3
задать поле типо povremennaya? может пример какой есть по этому поводу. заранее спасибо
0
159 / 151 / 73
Регистрация: 03.03.2014
Сообщений: 368
10.03.2014, 19:33 4
Лучший ответ Сообщение было отмечено Alex7289 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
    public class RatePerHour
    {
         public double [] Rate = new double[12];
 
        public RatePerHour ()
        {
            // Добавляете вашу петрушку с текстбоксами
            Rate[0] = 20.8*8;
            Rate[1] = 20.8 * 8;
            Rate[2] = 20.8 * 8;
            Rate[3] = 20.8 * 8;
            Rate[4] = 20.8 * 8;
            Rate[5] = 20.8 * 8;
            Rate[6] = 20.8 * 8;
            Rate[7] = 20.8 * 8;
            Rate[8] = 20.8 * 8;
            Rate[9] = 20.8 * 8;
            Rate[10] = 20.8 * 8;
            Rate[11] = 20.8 * 8;
        }
    }
 
    public class AnotherClass
    {
        public double b(RatePerHour rate)
        {
            return rate.Rate.Sum();
        }
    }
 
 
    class Program
    {
        static void Main(string[] args)
        {
            RatePerHour r = new RatePerHour();
            AnotherClass a = new AnotherClass();
            Console.WriteLine(a.b(r));
            Console.ReadLine();
        }
    }
}
Можно еще проще. Сделать аргумент метода типом вашего "povremennaya", как в этом примере. Но лучше пересмотрите вообще всю программу выделаете все это не самым оптимальным способом, мне так кажется.
1
0 / 0 / 0
Регистрация: 10.03.2014
Сообщений: 18
11.03.2014, 11:19  [ТС] 5
Я бы все сделал в одном классе, так мне дали задание что бы мне усложнить жизнь)))

Добавлено через 15 часов 33 минуты
Not_Jon_Skeet, все равно 0 получается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   public class povremennaya : Form1
        {
 
            public double[] stavka = new double[12];
        
            public  void raschet()
            {
 
                stavka[0] = Convert.ToDouble(textBox2.Text) * 20.8 * 8;
                stavka[1] = Convert.ToDouble(textBox3.Text) * 20.8 * 8;
                stavka[2] = Convert.ToDouble(textBox4.Text) * 20.8 * 8;
                stavka[3] = Convert.ToDouble(textBox5.Text) * 20.8 * 8;
                stavka[4] = Convert.ToDouble(textBox6.Text) * 20.8 * 8;
                stavka[5] = Convert.ToDouble(textBox7.Text) * 20.8 * 8;
                stavka[6] = Convert.ToDouble(textBox8.Text) * 20.8 * 8;
                stavka[7] = Convert.ToDouble(textBox9.Text) * 20.8 * 8;
                stavka[8] = Convert.ToDouble(textBox10.Text) * 20.8 * 8;
                stavka[9] = Convert.ToDouble(textBox11.Text) * 20.8 * 8;
                stavka[10] = Convert.ToDouble(textBox12.Text) * 20.8 * 8;
                stavka[11] = Convert.ToDouble(textBox13.Text) * 20.8 * 8;
            
            
            }
        }
в другом классе
C#
1
2
3
4
5
  public double b(povremennaya stavka)
        {
    
          return stavka.stavka.Average ();
         }
и в другом методе
C#
1
2
3
povremennaya p = new povremennaya();
            Form1 s = new Form1();
 command.Parameters.Add("срзарплата", s.b(p) );
получается 0
0
159 / 151 / 73
Регистрация: 03.03.2014
Сообщений: 368
11.03.2014, 12:05 6
Alex7289, В том пример, что показал. Значения присваивались в конструкторе класса. У вас они присваиваются в методе. Попробуйте после создания "povremennaya p = new povremennaya();" вызвать ваш "р.raschet();" должно выйти.
З.Ы. Я не знаю как у вас там устроено, но я бы задавал значения ставок после нажатия клавиши какой-то...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2014, 12:05
Помогаю со студенческими работами здесь

Приравнивание переменных в классах.
Почему нельзя в классе сразу после объявления переменной прировнять её к определенному значению?...

Создание класса содержащего методы для использования в других классах
ПОМОГИТЕ решить проблему: Нужно сделать класс в котором надо собрать часто используемые методы, для...

Получение значений переменных в классах
Столкнулся с таким вопросом. Функция adobj в классе Add обращается к внешней функции zap, передавая...

Видимость переменных в наследуемых классах
Привет. Только начинаю изучать ООП. Public MustInherit Class MIClass Private i() As Integer ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru