Hi,
The following code shows my problem:
using System;
using System.Collections.Generic;
using System.Text;
....
namespace ConsoleApplication1
{
static class MyOp
{
public static T Sub<T>(T item1, T item2)
where T : struct
{
return item1-item2; // this is line 118
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(MyOp.Sub(2,3));
}
}
}
Build result:
Program.cs(118,17): error CS0019: Operator '-' cannot be applied to
operands of type 'T' and 'T'
What have I to add to 'where' to tell to the generic function that T
implements operator- ?
Another question: the C# built-in types (byte,int,double,...) have
associated the same set of operation {+,-,*,/}: are these types derived
from common interface?
TIA.
Marco. 2 13033
On Mon, 17 Oct 2005 10:55:57 +0200, Marco Segurini
<ma***********@virgilio.it> wrote: What have I to add to 'where' to tell to the generic function that T implements operator- ?
You can't do that. There is no operator constraint in C# 2.0.
Another question: the C# built-in types (byte,int,double,...) have associated the same set of operation {+,-,*,/}: are these types derived from common interface?
They are not. There have been a few threads on this subject before,
and the conclusion was that it is impossible to perform any of the
built-in mathematical operations on generic types.
If you want to write a class that works on different numeric types you
have to it the old-fashioned way -- provide strongly-typed overloads
for each version. Generics are no help here, unfortunately.
-- http://www.kynosarges.de
On Mon, 17 Oct 2005 10:55:57 +0200, Marco Segurini
<ma***********@virgilio.it> wrote: What have I to add to 'where' to tell to the generic function that T implements operator- ?
Another question: the C# built-in types (byte,int,double,...) have associated the same set of operation {+,-,*,/}: are these types derived from common interface?
Unfortunally operators can't belong to interfaces so there is no
direct way of doing it. If you still want/need it, there is an
excellent article that describes how to work around the problem. It
can be found at http://www.codeproject.com/csharp/genericnumerics.asp
--
Marcus Andrén This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: praba kar |
last post by:
Dear all,
In Php array_slice function base
we can print array contents as per our desire
eg)
$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
$arr = array_slice($a,10,10);
this function...
|
by: William Gill |
last post by:
I am using the % operator to create queries for a db app. It works fine
when exact strings, or numbers are used, but some queries need partial
matching that use the '%' as a wildcards. So for...
|
by: Tony Johansson |
last post by:
Hello Experts!
Assume I have a class called SphereClass as the base class and a class
called BallClass that is derived from the SphereClass. The copy constructor
initialize the left hand object...
|
by: Pawel |
last post by:
How do you use a (pow) statement in visual c++.net 2003
standard edition?
I want to calculate something and then display it to the
user. But in a windows based enviornment not dos.
What do you...
|
by: mjdeesh_hi |
last post by:
How can we perfom multiplication programatically without using + or *
operator.
Can any one help out in this one.
Jagadeesh.
|
by: krypto.wizard |
last post by:
Last month I appeared for an interview with EA sports and they asked
me this question.
How would you divide a number by 7 without using division operator ?
I did by doing a subtraction and...
|
by: KK |
last post by:
Dear All
I have a small problem with using as operator on value type array.
Here is an example what I am trying to do.
using System;
using System.Collections.Generic;
using System.Text;
|
by: DolphinDB |
last post by:
Tired of spending countless mintues downsampling your data? Look no further!
In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM).
In this month's session, we are pleased to welcome back...
|
by: ArrayDB |
last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
|
by: PapaRatzi |
last post by:
Hello,
I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
|
by: CloudSolutions |
last post by:
Introduction:
For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
|
by: Defcon1945 |
last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
|
by: Shællîpôpï 09 |
last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome former...
| |