Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. It's not often I find a truly interesting blog post on C#...

It's not often I find a truly interesting blog post on C#...

Scheduled Pinned Locked Moved The Lounge
csharpcomhelptutorial
13 Posts 10 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Marc Clifton
    wrote on last edited by
    #1

    This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

    Quote:

    There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

    Very cool.

    Latest Articles:
    Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

    Greg UtasG honey the codewitchH O B J 6 Replies Last reply
    0
    • M Marc Clifton

      This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

      Quote:

      There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

      Very cool.

      Latest Articles:
      Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

      Greg UtasG Offline
      Greg UtasG Offline
      Greg Utas
      wrote on last edited by
      #2

      Some interesting things in there, even though I've never learned C#. But this came as a surprise:

      Quote:

      I’ve discovered this language feature by accident...

      I hope the feature is documented instead of being an accidental side effect of the current implementation!

      Robust Services Core | Software Techniques for Lemmings | Articles

      <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
      <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

      M 1 Reply Last reply
      0
      • Greg UtasG Greg Utas

        Some interesting things in there, even though I've never learned C#. But this came as a surprise:

        Quote:

        I’ve discovered this language feature by accident...

        I hope the feature is documented instead of being an accidental side effect of the current implementation!

        Robust Services Core | Software Techniques for Lemmings | Articles

        M Offline
        M Offline
        musefan
        wrote on last edited by
        #3

        Of course it's documented! It's documented right there in that blog post you just read! :laugh:

        Greg UtasG 1 Reply Last reply
        0
        • M musefan

          Of course it's documented! It's documented right there in that blog post you just read! :laugh:

          Greg UtasG Offline
          Greg UtasG Offline
          Greg Utas
          wrote on last edited by
          #4

          The author does actually suggest linking to his blog if your co-workers don't understand your code when it uses one of these spiffy features! :laugh:

          Robust Services Core | Software Techniques for Lemmings | Articles

          <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
          <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

          1 Reply Last reply
          0
          • M Marc Clifton

            This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

            Quote:

            There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

            Very cool.

            Latest Articles:
            Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

            honey the codewitchH Offline
            honey the codewitchH Offline
            honey the codewitch
            wrote on last edited by
            #5

            Nice. I love it when I learn stuff.

            Real programmers use butterflies

            M 1 Reply Last reply
            0
            • honey the codewitchH honey the codewitch

              Nice. I love it when I learn stuff.

              Real programmers use butterflies

              M Offline
              M Offline
              Marc Clifton
              wrote on last edited by
              #6

              honey the codewitch wrote:

              Nice. I love it when I learn stuff.

              I thought you might find that interesting. And yes, agreed! Learned new stuff!

              Latest Articles:
              Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

              1 Reply Last reply
              0
              • M Marc Clifton

                This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

                Quote:

                There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

                Very cool.

                Latest Articles:
                Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

                O Offline
                O Offline
                obermd
                wrote on last edited by
                #7

                Every single one of those "tricks" is documented in the C# online documentation. This is simply someone who didn't bother to read the C# language documentation. Not impressed.

                1 Reply Last reply
                0
                • M Marc Clifton

                  This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

                  Quote:

                  There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

                  Very cool.

                  Latest Articles:
                  Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

                  B Offline
                  B Offline
                  BillWoodruff
                  wrote on last edited by
                  #8

                  :thumbsup:

                          var errorCodes = new Dictionary
                          {
                              \[404\] = "Page not Found",
                              \[302\] = "Page moved, but left a forwarding address.",
                              \[500\] = "The web server can't come out to play today."
                          };
                  

                  that got my attention !

                  «One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali

                  O 1 Reply Last reply
                  0
                  • B BillWoodruff

                    :thumbsup:

                            var errorCodes = new Dictionary
                            {
                                \[404\] = "Page not Found",
                                \[302\] = "Page moved, but left a forwarding address.",
                                \[500\] = "The web server can't come out to play today."
                            };
                    

                    that got my attention !

                    «One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali

                    O Offline
                    O Offline
                    obermd
                    wrote on last edited by
                    #9

                    BillWoodruff wrote:

                    var errorCodes = new Dictionary<int, string> { [404] = "Page not Found", [302] = "Page moved, but left a forwarding address.", [500] = "The web server can't come out to play today." };

                    It's a syntactic side effect of the Add and Item methods. If you set a value of a dictionary via the Item method and the key doesn't exist the class will add the key and value. It is a very nice and clean way of writing:

                    var errorCodes = new Dictionary
                    {
                    {[404], "Page not Found"},
                    {[302], "Page moved, but left a forwarding address."},
                    {[500], "The web server can't come out to play today."}
                    };

                    As I stated previously, there is nothing in this guy's blog that isn't directly the result of the C# and dotNet framework class documentation.

                    S 1 Reply Last reply
                    0
                    • O obermd

                      BillWoodruff wrote:

                      var errorCodes = new Dictionary<int, string> { [404] = "Page not Found", [302] = "Page moved, but left a forwarding address.", [500] = "The web server can't come out to play today." };

                      It's a syntactic side effect of the Add and Item methods. If you set a value of a dictionary via the Item method and the key doesn't exist the class will add the key and value. It is a very nice and clean way of writing:

                      var errorCodes = new Dictionary
                      {
                      {[404], "Page not Found"},
                      {[302], "Page moved, but left a forwarding address."},
                      {[500], "The web server can't come out to play today."}
                      };

                      As I stated previously, there is nothing in this guy's blog that isn't directly the result of the C# and dotNet framework class documentation.

                      S Offline
                      S Offline
                      Sasa Cetkovic
                      wrote on last edited by
                      #10

                      Who reads the entire documentation?

                      K 1 Reply Last reply
                      0
                      • S Sasa Cetkovic

                        Who reads the entire documentation?

                        K Offline
                        K Offline
                        kalberts
                        wrote on last edited by
                        #11

                        I think we have bots for that :-)

                        1 Reply Last reply
                        0
                        • M Marc Clifton

                          This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

                          Quote:

                          There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

                          Very cool.

                          Latest Articles:
                          Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

                          J Offline
                          J Offline
                          James Curran
                          wrote on last edited by
                          #12

                          He hints at it but doesn't show what you can do with the LINQ pattern. You can do fun stuff like this:

                          void Main()
                          {
                          var notACollection = new MyClass();
                          var x = from a in notACollection
                          where a.DoesntMatter == 5
                          select "Greetings Earthling";

                          	x.Dump();       // Prints "HELLO, WORLD!"
                          	
                          }
                          
                          class MyClass
                              {
                          	string \_msg;
                          	public int DoesntMatter;
                          	
                          	public MyClass Where(Func \_)
                          	{
                          		\_msg = "Hello, World!";
                          		return this;
                          	}
                          
                          
                          	public string Select(Func \_)
                          	{
                          		return \_msg.ToUpperInvariant();
                          	}
                          }
                          

                          Truth, James

                          1 Reply Last reply
                          0
                          • M Marc Clifton

                            This: The Magical Methods in C# · Cezary Piątek Blog[^] is an exception.

                            Quote:

                            There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.

                            Very cool.

                            Latest Articles:
                            Abusing Extension Methods, Null Continuation, and Null Coalescence Operators

                            T Offline
                            T Offline
                            Thornik
                            wrote on last edited by
                            #13

                            Literally only this one article worth to read. Everything else in this so called "blog" just a water.

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups