Discussion of the 2nd case is missing: User-defined conversions _from_ values of a base class
- Dominant language
- No language data
- Stars
- 4.8k
- Forks
- 6.1k
- Avg merge
- 15h 21m
- Merged PRs (30d)
- 370
Description
The page lists a trivial and easy to understand case. However a more realistic and useful case is not discussed at all: User-defined conversions _from_ values of a base class are not allowed. It would be nice to discuss why, and to provide reasonable workarounds!
In particular with emphasis on the fact that the base class may not provide convenience conversion methods to derived classes for at least 2 reasons:
- The fact that base classes may be in other assemblies
- The fact that derived classes may introduce type parameters that do not exist on the base class
---
#### Document Details
⚠ *Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.*
* ID: eb04a5ff-461e-a70d-5e7c-20333e93c683
* Version Independent ID: d1a76803-3482-678d-b6b4-dd50b4d80fd8
* Content: [Compiler Error CS0553](https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0553?f1url=%3FappId%3Droslyn%26k%3Dk(CS0553))
* Content Source: [docs/csharp/misc/cs0553.md](https://github.com/dotnet/docs/blob/main/docs/csharp/misc/cs0553.md)
* Product: **dotnet-csharp**
* Technology: **csharp-diagnostics**
* GitHub Login: @BillWagner
* Microsoft Alias: **wiwagn**
Contributor guide
Research direction
Start with docs/csharp/misc/cs0553.md and the linked CS0553 content. Review the existing trivial case, then document why user-defined conversions from base-class values are disallowed and describe reasonable workarounds, including cases involving other assemblies and derived-type parameters. Done means the page covers the requested second case clearly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100