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

Implement new Concept Exercise: extension-methods #1445

Closed
ErikSchierboom opened this issue Apr 2, 2020 · 5 comments
Closed

Implement new Concept Exercise: extension-methods #1445

ErikSchierboom opened this issue Apr 2, 2020 · 5 comments
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work x:type/content Work on content (e.g. exercises, concepts)

Comments

@ErikSchierboom
Copy link
Member

This issue describes how to implement the extension-methods concept exercise for the C# track.

Getting started

Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:

Please also watch the following video:

Goal

The goal of this exercise is to teach the student the Concept of Extension Methods in C#.

Learning objectives

  • Know what extension methods are.
  • Know how to define extension methods on reference and value types..

Out of scope

  • Assemblies.

Concepts

This Concepts Exercise's Concepts are:

  • extension-methods: know what extension methods are; know how to define extension methods on reference and value types.

Prequisites

This Concept Exercise's prerequisites Concepts are:

  • classes: know what instance methods are.
  • namespaces: know what namespaces are; know how to import namespaces.

Any data types used in this exercise (e.g. strings) should also be added as prerequisites.

Resources to refer to

Hints

After

Representer

This exercise does not require any specific representation logic to be added to the representer.

Analyzer

This exercise does not require any specific analyzer logic to be added to the analyzer.

Implementing

To implement this exercise, please follow these instructions.

Help

If you have any questions while implementing the exercise, please post the questions as comments in this issue.

@ryanrobidou
Copy link
Contributor

Would love to take a look at implementing this exercise in the spirit of Hacktoberfest. Is this one I can help with?

@ErikSchierboom
Copy link
Member Author

Yeah sure! I've updated the label. To start, I suggest the following:

@mikedamay Did you have any particular ideas on how you wanted to approach this exercise? I'm thinking extend one of the existing classes in the BCL.

@mikedamay mikedamay transferred this issue from exercism/v3 Jan 28, 2021
@mikedamay mikedamay changed the title [C#] Implement new Concept Exercise: extension-methods [V3] Implement new Concept Exercise: extension-methods Jan 28, 2021
@ErikSchierboom ErikSchierboom changed the title [V3] Implement new Concept Exercise: extension-methods Implement new Concept Exercise: extension-methods Aug 19, 2021
@ErikSchierboom ErikSchierboom added x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:type/content Work on content (e.g. exercises, concepts) x:size/large Large amount of work labels Aug 19, 2021
@yzAlvin
Copy link
Contributor

yzAlvin commented Sep 3, 2021

Has there been work done on this issue yet? Would be happy to give it a go or work with you on this ryanrobidou :)

I was thinking of extending IEnumerable ? People might be familiar with Sum, so maybe we could write an extension method Product, Mean, Median and Mode?

Would it be better to extend other types too? Maybe we could extend string with IsQuestion (just check that the string ends with a ?)

@Grenkin1988
Copy link
Contributor

I guess this should be closed?

@ErikSchierboom
Copy link
Member Author

Yep!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:size/large Large amount of work x:type/content Work on content (e.g. exercises, concepts)
Projects
None yet
Development

No branches or pull requests

4 participants