Оценить время работы метода - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо оценить время работы метода. Но он почему-то не хочет этого делать.Как я поняла, он не может конвертировать. Подскажите как правильно это сделать. Заранее благодарю за помощь. это библиотека
namespace ClassLibrary2
{
    public class TimeValue
    {
        public delegate double DToD(double arg1);
        public static double EvalTimeDtoD(int count, DToD fun, double x1,double x2,double dx)
        {
            DateTime start, finish;
            double res = 0;
            start = DateTime.Now;
            for (int i = 1; i <= count;i++)
            {
                do
                {
                    fun(x1);
                    x1 += dx;
                } while (x1 <= x2);
            }
                finish = DateTime.Now;
            res = (finish - start).Milliseconds;
            return res;
        }
    }
    public class Class1
    {
     public static double Kol(double X,double EPS)
        {
            double a = X;
            double res = 0;
            int k = 0;
            do
            {
                res += a;
                a *= (-(Math.Pow(X, 2))) * (2 * k + 1);
                a /= (2 * k + 3);
                k++;
                Console.WriteLine(a);
                res += a;
            } while (Math.Abs(a) >= EPS);
            return k;
        }
        public static double MyAtan(double X, double EPS)
        {
            double a = X;
            double res = 0;
            int k = 0;
            do
            {
                res += a;
                a *= (-(Math.Pow(X, 2))) * (2*k+1);
                a /= (2*k+3);
                k++;
                Console.WriteLine(a);
                res += a;
            } while (Math.Abs(a) >= EPS);
            return res;
     
        }
    }
}
WindowsForm
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            
            InitializeComponent();
            Result.ColumnCount = 5;
            Result.Columns[0].HeaderText = "X";
            Result.Columns[1].HeaderText = "Math.Atan";
            Result.Columns[2].HeaderText = "MyAtan";
            Result.Columns[3].HeaderText = "Разница";
            Result.Columns[4].HeaderText = "Сумма";

        }
 
        private void EPSLabel_Click(object sender, EventArgs e)
        {
 
        }
 
        private void AtanButton_Click(object sender, EventArgs e)
        {
            int count = 1;
            double x1 = Convert.ToDouble(X1TextBox.Text);
            double x2 = Convert.ToDouble(X2TextBox.Text);
            double dx = Convert.ToDouble(dXTextBox.Text);
            double eps = Convert.ToDouble(EpsTextBox.Text);
            int MyRow = Convert.ToInt32(x2 / dx);
            count = Convert.ToInt32(ReturnTextBox.Text);
            TimeTextBox1.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, Math.Atan, x1, x2, dx)).ToString();

TimeTextBox2.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, ClassLibrary2.Class1.MyAtan, x1, x2, dx)).ToString();// Тут выдает 2 ошибки:

Error   2   Argument 2: cannot convert from 'method group' to 'ClassLibrary2.TimeValue.DToD'    C:\Users\1\Documents\Visual Studio 2013\Projects\lab C#\ClassLibrary2\WindowsFormsApplication1\Form1.cs 44  78  WindowsFormsApplication1
 
Error   1   The best overloaded method match for 'ClassLibrary2.TimeValue.EvalTimeDtoD(int, ClassLibrary2.TimeValue.DToD, double, double, double)' has some invalid arguments   C:\Users\1\Documents\Visual Studio 2013\Projects\lab C#\ClassLibrary2\WindowsFormsApplication1\Form1.cs 44  34  WindowsFormsApplication1]
 
\

            Result.RowCount = MyRow;
            int n = 0;
            do
            {
                
                Result[0, n].Value = x1;
                Result[1, n].Value = Math.Atan(x1);
                Result[2, n].Value = ClassLibrary2.Class1.MyAtan(x1,eps);
                Result[3, n].Value = (double)Result[1, n].Value - (double)Result[2, n].Value;
                Result[4, n].Value = ClassLibrary2.Class1.Kol(x1, eps);
                n++;
                x1 += dx;
            } while (x1 <= x2);
        }
    }
}

Решение задачи: «Оценить время работы метода»

textual
Листинг программы
TimeTextBox1.Text = (ClassLibrary2.TimeValue.EvalTimeDtoD(count, new ClassLibrary2.TimeValue.DToD(Math.Atan), x1, x2, dx)).ToString();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5