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

  • SEARCH
  • Home
  • 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 108421
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T01:54:33+00:00 2026-05-11T01:54:33+00:00

I’ve got a problem with inheritance and generics. This is the code that illustrates

  • 0

I’ve got a problem with inheritance and generics. This is the code that illustrates my problem:

namespace TestApplication {     public class MyClass<T>     {         private T field;          public MyClass(T field)         {             this.field = field;         }     }      public class MyIntClass : MyClass<int>     {         public MyIntClass(int field)             : base(field)         {         }     } } 

And when I try to do something like this:

MyClass<int> sth = new MyClass<int>(10); MyIntClass intsth = (MyIntClass) sth; 

I receive cast exception: Invalid cast exception. Unable to cast ‘TestApplication.MyClass`1[System.Int32]’ to ‘TestApplication.MyIntClass’.

What is more I cannot create cast operator:

public static implicit operator MyIntClass(MyClass<int> myClass) 

because: ‘TestApplication.MyIntClass.implicit operator TestApplication.MyIntClass(TestApplication.MyClass)’: user-defined conversions to or from a base class are not allowed

I need to create casts as described above. I don’t know why I cannot cast from a type that is the base class. How can I solve this problem? Thanks in advance.

Edit

Thanks for Your answers. Now I see that i cannot convert from a base class to derived class and i see that it doesn’t have anything to do with generics. But why i cannot create user-defined conversions from a base class? I have a method that returns the base class. I am able to define a conversion method but creating a cast operator imho would be a better solution.

  • 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. 2026-05-11T01:54:33+00:00Added an answer on May 11, 2026 at 1:54 am

    You can only cast from a base class to a derived class if the object is actually of type derived class. I mean, you can’t cast an instance of base (MyClass<int>) to MyIntClass. You can, however cast it if it was actually of type MyIntClass stored as an MyClass<int> instance.

    MyClass<int> foo = new MyIntClass(); MyIntClass bar = (MyIntClass)foo; // this works. 

    Assume:

    class Base {    int x; }  class Derived : Base {    int y; }  Base foo = new Base(); Derived bar = (Derived)foo; 

    if it was allowed, what would the value of bar.y be? In fact, converting from Derived to Base is not a conversion at all. It’s just telling the compiler to let the variable of type Base to point to an object of type Derived. It is possible since derived has more or equal features than Base which is not the case in the other way around.

    If you were able to create a conversion operator between base and derived classes, the C# compiler would be unable to distinguish it from the built in relationships defined for them. This is why you cannot create cast operators along inheritance hierarchies.

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

Sidebar

Ask A Question

Stats

  • Questions 119k
  • Answers 119k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Isn't the 6510 in the C64? You might be able… May 11, 2026 at 11:44 pm
  • Editorial Team
    Editorial Team added an answer As it turns out, the error was caused because the… May 11, 2026 at 11:44 pm
  • Editorial Team
    Editorial Team added an answer Try: ldd executable For example: [me@somebox ~]$ ldd /bin/ls linux-gate.so.1… May 11, 2026 at 11:44 pm

Related Questions

I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I am currently running into a problem where an element is coming back from
Seemingly simple, but I cannot find anything relevant on the web. What is the
Does anyone know how can I replace this 2 symbol below from the string
Configuring TinyMCE to allow for tags, based on a customer requirement. My config is

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.