Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Base Interface is not defined and perhaps ill-defined. #39364

Closed
crawfis opened this issue Feb 1, 2024 · 3 comments · Fixed by #41777
Closed

Base Interface is not defined and perhaps ill-defined. #39364

crawfis opened this issue Feb 1, 2024 · 3 comments · Fixed by #41777
Assignees
Labels
doc-enhancement Improve the current content [org][type][category] dotnet-csharp/svc help wanted Good for community contributors to help [up-for-grabs] lang-reference/subsvc Pri2 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@crawfis
Copy link

crawfis commented Feb 1, 2024

Type of issue

Missing information

Description

[Enter feedback here]
The paragraph and the following that start with "An interface can inherit from one or more base interfaces" is not as clear as it could be. In particular, the concept of a "base" interface is not defined and one would typically remove this word, but then base is peppered throughout this section. I guess you call an interface with a default implementation a base interface. However this seems method specific and not interface specific.

Page URL

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/interface

Content source URL

https://github.com/dotnet/docs/blob/main/docs/csharp/language-reference/keywords/interface.md

Document Version Independent Id

d931e899-d6f0-55ff-ab3a-dfff6e31f5a2

Article author

@BillWagner

Metadata

  • ID: ef21cb62-9cbd-84c8-cfae-6dd1a421180b
  • Service: dotnet-csharp
  • Sub-service: lang-reference

Associated WorkItem - 289450

@issues-automation issues-automation bot added dotnet-csharp/svc lang-reference/subsvc Pri1 High priority, do before Pri2 and Pri3 labels Feb 1, 2024
@dotnet-bot dotnet-bot added the ⌚ Not Triaged Not triaged label Feb 1, 2024
@BillWagner BillWagner added the doc-enhancement Improve the current content [org][type][category] label Feb 1, 2024
@dotnet-bot dotnet-bot removed the ⌚ Not Triaged Not triaged label Feb 1, 2024
@BillWagner BillWagner added ⌚ Not Triaged Not triaged Pri2 and removed Pri1 High priority, do before Pri2 and Pri3 labels Feb 1, 2024
@dotnet-bot dotnet-bot removed the ⌚ Not Triaged Not triaged label Feb 1, 2024
@BillWagner BillWagner added the help wanted Good for community contributors to help [up-for-grabs] label Feb 1, 2024
@BillWagner
Copy link
Member

Thanks for pointing this out @crawfis We can improve this.

The language specification also uses the term "inherits" for defining a base interface.

We should add language to define "base interface" something like this:

"An interface may declare one or more base interfaces. A class that implements that interface must implement all the members declared in the interface and its base interfaces. Note that any of the interface may include a default implementation of one or more of those members."

I've added this to our backlog, and added the "help wanted" label.

@crawfis
Copy link
Author

crawfis commented Feb 1, 2024

Hmm. Sorry Bill, but that sounds even more confusing. Perhaps I am misunderstanding what is meant here. An example would help. Again I think you mean interface IB is derived from interface IA, so IA is a "base" interface for IB. To implement interface IB one must also implement interface IA. TI see the problem though; Declare seems wrong. Inherit seems wrong, etc.

@BillWagner
Copy link
Member

I'm open to different language for the definition. That was my first pass. I also agree that an example would help.

I want to continue with the term "base interface", as that's what's used in the language specification. In general, I want to standardize on those terms, and define them well (including any needed examples). Then, as readers want more details, or more depth, they can turn to the specification. They'll already have the necessary vocabulary for the important terms.

@BillWagner BillWagner self-assigned this Jul 26, 2024
@BillWagner BillWagner added the 🗺️ reQUEST Triggers an issue to be imported into Quest. label Jul 26, 2024
@sequestor sequestor bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels Jul 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc-enhancement Improve the current content [org][type][category] dotnet-csharp/svc help wanted Good for community contributors to help [up-for-grabs] lang-reference/subsvc Pri2 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
No open projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

3 participants