Задать поля через консольный ввод и выполнять метод от начала до конца c#

216
30 мая 2018, 12:40

У меня есть два скрипта

первый:

using System;
using System.Threading;
using System.ComponentModel;
namespace lessonside
{
class Tmain 
{
static void Main(string[] args)
{
Thread oper = new Thread(Wrk);
oper.Start();
oper.Join();
Console.WriteLine("Thread worker complete!");

}
 static void Wrk()
{ 
Mather Mbot1 = new Mather();
Mbot1.Mather_Setxy(23,421);
Mbot1.Mather_sum();
Console.ReadKey();
 }
}
}

второй:

 using System;
 namespace lessonside
 {
public class Mather 
       { 
    float b; float x; string NameMF;  double sum; string SqrtN; double Absxy;double powXY;
    int n; string answr,woransw;
    public void Mather_Setxy(float bchange,float xchange)
    {   
        x=xchange;
        b=bchange;
        Console.WriteLine(x);
        Console.WriteLine(b);
    }
    public void Mather_sum()
    {   
        NameMF="Sum number+";
        System.Console.WriteLine("Function name=",NameMF);
        sum=x+b;
        System.Console.WriteLine("Sum=",sum);
    }
    public void Mather_sqrtN()
    {   
        NameMF="Sqrt number**";
        System.Console.WriteLine("Function name=",NameMF);
        System.Console.WriteLine("Sqrt number: b or x or b and x ?");
        switch(answr)
    { case "b":
            {
            SqrtN+=Math.Sqrt(b);
            System.Console.WriteLine("Sqrt number: b=",SqrtN);
            break;
            }
            case "x":
                {
                SqrtN+=Math.Sqrt(x);
            System.Console.WriteLine("Sqrt number: x=",SqrtN);
            break;  
                }
            case "b and x":
                {
                SqrtN+=Math.Sqrt(b);
            System.Console.WriteLine("Sqrt number: b=",SqrtN);
            SqrtN+=Math.Sqrt(x);
            System.Console.WriteLine("Sqrt number: x=",SqrtN);
            break;  
                }
    }
}
    public void Mather_Absxy()
    {
        NameMF="Absolute xy number $";
        System.Console.WriteLine("Function name=",NameMF);
        System.Console.WriteLine("Absolute xy for number: b or x or b and x ?");
        switch(answr)
    { case "b":
                {   Absxy+=Math.Abs(b);
                    System.Console.WriteLine("Absolute xy for number: b=",Absxy);
                    break;
                        }
            case "x":
                {
                Absxy+=Math.Abs(x);
            System.Console.WriteLine("Absolute xy for number: x=",Absxy);
            break;              
                }
            case "b and x":
                {
                Absxy+=Math.Abs(b);
            System.Console.WriteLine("Absolute xy for number: b=",Absxy);
            Absxy+=Math.Abs(x);
            System.Console.WriteLine("Absolute xy for number: x=",Absxy);;
            break;  
                }
    }
    }
    public void Mather_powXY()
    {
        NameMF="Pow xy for number x*x";
        System.Console.WriteLine("Function name=",NameMF);
        System.Console.WriteLine("Pow xy for number: b or x or b and x ?");
        switch(answr)
    { case "b":
            {       System.Console.WriteLine("Enter the extent of number: Square of a number or cube of a number");
                    woransw=System.Console.ReadLine();
                    if (woransw=="square")
                    {
                    powXY+=Math.Pow(b,2);
            System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    else if (woransw=="cube")
                    {
                    powXY+=Math.Pow(b,3);
                    System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    break;
            }
            case "x":
                {
                System.Console.WriteLine("Enter the extent of number: Square of a number or cube of a number");
                    woransw=System.Console.ReadLine();
                    if (woransw=="square")
                    {
                    powXY+=Math.Pow(x,2);
            System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    else if (woransw =="cube")
                    {
                    powXY+=Math.Pow(x,3);
                    System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    break;  
                }
            case "b and x":
                {
                System.Console.WriteLine("Enter the extent of number: Square of a number or cube of a number");
                    woransw=System.Console.ReadLine();
                    if (woransw=="square")
                    {
                    powXY+=Math.Pow(b,2);
            System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    else if (woransw =="cube")
                    {
                    powXY+=Math.Pow(b,3);
                    System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
            System.Console.WriteLine("Enter the extent of number: Square of a number or cube of a number");
                    woransw=System.Console.ReadLine();
                    if (woransw=="square")
                    {
                    powXY+=Math.Pow(x,2);
            System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    else if (woransw =="cube")
                    {
                    powXY+=Math.Pow(x,3);
                    System.Console.WriteLine("Pow xy for number: b=",powXY);
                    break;              
                    }
                    break;  
                }
    }   


    }
         }
        }

[Вывод]:

Проблема в том что надо как-то задать значения b,x желательно чтобы это было вводом тобишь Console.ReadLine Еще проблема в том что если выполнять другой метод класса Mather, то выполняется он не полностью а всего 2 строчки Догадываюсь, что это связано с полями

Answer 1

Получите значения с консоли и передайте их в поток. Используйте для этого ParameterizedThreadStart.

READ ALSO
Вывод игрового поля для судоку. C#

Вывод игрового поля для судоку. C#

У меня имеется двумерный массив, в котором хранятся различные значенияМне необходимо реализовать вывод этих данных на форму, алгоритм должен...

209
Вывести Image в GridControl DevExpress

Вывести Image в GridControl DevExpress

При отображении данных в GridControl столкнулся с такой сложностью: Имеется свойство в в модели для получения изображения из byte[]:

230
VK API | Лимит символом для отправки

VK API | Лимит символом для отправки

Данный текст не отправляется, но если отправлять в ручную, то отправка идет успешно

229
Разбить данные для отправки по UDP

Разбить данные для отправки по UDP

Есть данные 8 Кб, нужно по протоколу UDP отправить их клиенту по 32 байтаКак правильно разбить данные? и как правильно их принять?

174