Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6685509
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T05:03:57+00:00 2026-05-26T05:03:57+00:00

private delegate T MyFunc<T>(int i); private static double SumNumber(int i, int n, MyFunc<double> func)

  • 0
private delegate T MyFunc<T>(int i);

private static double SumNumber(int i, int n, MyFunc<double> func)
{
    double sum = 0.0;
    for (int j = i; i <= n; j++)
    {
        sum += func(j);
    }
    return sum;
}

private static Vector SumVector(int i, int n, MyFunc<Vector> func)
{
    Vector sum = new Vector(0.0, 0.0);
    for (int j = i; i <= n; j++)
    {
        sum += func(j);
    }
    return sum;
}

This is a program to calculate sum of MyFunc(j) where j is i to n.

I tried to use interface like:

interface IAddable<T>
{
    static T operator +(T x, T y);
}

but it didn’t work.

So what should I do?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T05:03:57+00:00Added an answer on May 26, 2026 at 5:03 am

    Firstly, note that in many ways the non-generic overload version is simpler. Generics do not support operators, nor do interfaces.

    Indeed, if there are Sum methods available for your types (perhaps via extension methods on IEnumerable<T>) the caller could use simply:

    var data = sourceData.Select(projection).Sum();
    

    where projection is the moral equivalent of func.

    For doing it your way, what you might try first is dynamic:

    private static T Sum<T>(int i, int n, Func<int,T> func)
    {
        if(i >= n) throw new ArgumentOutOfRangeException();
        T sum = func(i);
        for (int j = i + 1; i <= n; j++)
        {
            sum = (dynamic)sum + (dynamic)func(j);
        }
        return sum;
    }
    

    otherwise, there are some tricks you can do to fake generic operators (see MiscUtil), or you could pass in the accumulator method (i.e. Func<T,T,T> add) as a parameter.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Today I was thinking about declaring this: private delegate double ChangeListAction(string param1, int number);
Right now, I have to do this private delegate void set(int obj); //declare the
I'm confused why this compiles: private delegate int MyDelegate(int p1, int p2); private void
I have this method: private delegate void watcherReader(StreamReader sr); private void watchProc(StreamReader sr) {
private void activateRecords(long[] stuff) { ... api.activateRecords(Arrays.asList(specIdsToActivate)); } Shouldn't this call to Arrays.asList return
The code: [1] private delegate void ThreadStatusCallback(ReceiveMessageAction action, Dictionary<int, List<string>> message); [2] Dictionary<int, List<string>>
I have this as one of my members of the class 'KeyEvent': private delegate
I have a delegate private delegate Color ColorDel(int x, int y); which returns a
I'm facing a deadlock, my code structure is similar to this: private delegate void
private delegate int Operate(int x, int y); Operate usedOperator; int Add(int x, int y)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.