Can C# leverage implicit nested generic parameter?

Pragmateek

I have a quite simple design:

  • a generic interface IElement<> with a single generic parameter T:

    interface IElement<T>
    {
    }
    
  • another generic interface ISource<> that manages IElement<>

In ISource<> I have a method that returns the underlying type of IElement<>:

T GetSomething();

Here is what I can do:

interface ISource<TElem, T>
    where TElem : IElement<T>
{
    T GetSomething();
}

class IntegersSource : ISource<IElement<int>, int>
{
    public int GetSomething()
    {
        return 1;
    }
}

But the nested type, here int, has to be repeated.

I'd like something like:

class IntegersSource : ISource<IElement<int>>
{
    public int GetSomething()
    {
        return 1;
    }
}

I've tried :

interface ISource<TElem>
    where TElem : IElement<T>
{
    T GetSomething();
}

But the compiler is not happy with this syntax.

I fear I'm missing something obvious, but what?

Thanks for any insight.

Heinzi

That won't work. Image you have the following class:

class MultiElement : IElement<int>, IElement<double>
{
    // explicit interface implementations of IElement<int> and IElement<double> here.
}

Now when I declare a class MySource : ISource<MultiElement>, what should be inferred as T?

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Can C# leverage implicit nested generic parameter?

From Dev

C# Covariance generic parameter assignment/casting (implicit conversion)

From Dev

Scala : Generic method implicit parameter

From Dev

C# Implicit operator with generic

From Dev

Using a class nested in a generic class as type parameter in C#

From Dev

Using a class nested in a generic class as type parameter in C#

From Dev

Referring to "nested" generic parameter in Java

From Dev

c# parameter implicit conversion

From Dev

C# generic implicit operator return type

From Dev

Inferring type of generic implicit parameter from return type

From Dev

Using static nested class as generic parameter

From Dev

C# Break down type parameter in generic method if its a nested class

From Dev

C# and casting generic parameter

From Dev

C generic Parameter into Function pointer

From Dev

C generic Parameter into Function pointer

From Dev

Generic parameter checker in C++

From Dev

How can get the type of nested generic type

From Dev

How can get the type of nested generic type

From Dev

Can OpenCV for Android leverage the standard C++ Support to get native build support on Android Studio 2.2 for Windows?

From Dev

Generic function which can take any class member in parameter C++

From Dev

Generic function which can take any class member in parameter C++

From Dev

How can I cast an Object to a generic List I don't know the type parameter of in C++/CLI?

From Dev

Why can't I omit the implicit parameter here?

From Dev

Can you reference 'this' class as a generic parameter?

From Dev

Implicit conversion for generic type?

From Dev

Generic `implicit` operators for monads?

From Dev

implicit parameters and generic types

From Dev

Scala generic implicit val

From Dev

Scala: refer to nested type of class, which comes as type parameter to generic

Related Related

  1. 1

    Can C# leverage implicit nested generic parameter?

  2. 2

    C# Covariance generic parameter assignment/casting (implicit conversion)

  3. 3

    Scala : Generic method implicit parameter

  4. 4

    C# Implicit operator with generic

  5. 5

    Using a class nested in a generic class as type parameter in C#

  6. 6

    Using a class nested in a generic class as type parameter in C#

  7. 7

    Referring to "nested" generic parameter in Java

  8. 8

    c# parameter implicit conversion

  9. 9

    C# generic implicit operator return type

  10. 10

    Inferring type of generic implicit parameter from return type

  11. 11

    Using static nested class as generic parameter

  12. 12

    C# Break down type parameter in generic method if its a nested class

  13. 13

    C# and casting generic parameter

  14. 14

    C generic Parameter into Function pointer

  15. 15

    C generic Parameter into Function pointer

  16. 16

    Generic parameter checker in C++

  17. 17

    How can get the type of nested generic type

  18. 18

    How can get the type of nested generic type

  19. 19

    Can OpenCV for Android leverage the standard C++ Support to get native build support on Android Studio 2.2 for Windows?

  20. 20

    Generic function which can take any class member in parameter C++

  21. 21

    Generic function which can take any class member in parameter C++

  22. 22

    How can I cast an Object to a generic List I don't know the type parameter of in C++/CLI?

  23. 23

    Why can't I omit the implicit parameter here?

  24. 24

    Can you reference 'this' class as a generic parameter?

  25. 25

    Implicit conversion for generic type?

  26. 26

    Generic `implicit` operators for monads?

  27. 27

    implicit parameters and generic types

  28. 28

    Scala generic implicit val

  29. 29

    Scala: refer to nested type of class, which comes as type parameter to generic

HotTag

Archive