diff options
Diffstat (limited to 'csharp.html.markdown')
| -rw-r--r-- | csharp.html.markdown | 47 | 
1 files changed, 39 insertions, 8 deletions
| diff --git a/csharp.html.markdown b/csharp.html.markdown index 7aca2c6f..bcb35d4b 100644 --- a/csharp.html.markdown +++ b/csharp.html.markdown @@ -7,6 +7,7 @@ contributors:      - ["Shaun McCarthy", "http://www.shaunmccarthy.com"]      - ["Wouter Van Schandevijl", "http://github.com/laoujin"]      - ["Jo Pearce", "http://github.com/jdpearce"] +    - ["Chris Zimmerman", "https://github.com/chriszimmerman"]  filename: LearnCSharp.cs  --- @@ -26,7 +27,7 @@ Multi-line comments look like this  //public void MethodOrClassOrOtherWithParsableHelp() {}  // Specify the namespaces this source code will be using -// The namespaces below are all part of the standard .NET Framework Class Libary +// The namespaces below are all part of the standard .NET Framework Class Library  using System;  using System.Collections.Generic;  using System.Dynamic; @@ -44,8 +45,8 @@ using System.Data.Entity;  // Using this code from another source file: using Learning.CSharp;  namespace Learning.CSharp  { -    // Each .cs file should at least contain a class with the same name as the file -    // you're allowed to do otherwise, but shouldn't for sanity. +    // Each .cs file should at least contain a class with the same name as the file. +    // You're allowed to do otherwise, but shouldn't for sanity.      public class LearnCSharp      {          // BASIC SYNTAX - skip to INTERESTING FEATURES if you have used Java or C++ before @@ -394,6 +395,7 @@ on a new line! ""Wow!"", the masses cried";              ref int maxCount, // Pass by reference              out int count)          { +            //the argument passed in as 'count' will hold the value of 15 outside of this function              count = 15; // out param must be assigned before control leaves the method          } @@ -419,7 +421,7 @@ on a new line! ""Wow!"", the masses cried";                  // Item is an int                  Console.WriteLine(item.ToString());          } -         +          // YIELD          // Usage of the "yield" keyword indicates that the method it appears in is an Iterator          // (this means you can use it in a foreach loop) @@ -435,7 +437,7 @@ on a new line! ""Wow!"", the masses cried";              foreach (var counter in YieldCounter())                  Console.WriteLine(counter);          } -         +          // you can use more than one "yield return" in a method          public static IEnumerable<int> ManyYieldCounter()          { @@ -444,7 +446,7 @@ on a new line! ""Wow!"", the masses cried";              yield return 2;              yield return 3;          } -         +          // you can also use "yield break" to stop the Iterator          // this method would only return half of the values from 0 to limit.          public static IEnumerable<int> YieldCounterWithBreak(int limit = 10) @@ -480,7 +482,7 @@ on a new line! ""Wow!"", the masses cried";              // ?? is syntactic sugar for specifying default value (coalesce)              // in case variable is null              int notNullable = nullable ?? 0; // 0 -             +              // ?. is an operator for null-propagation - a shorthand way of checking for null              nullable?.Print(); // Use the Print() extension method if nullable isn't null @@ -628,7 +630,7 @@ on a new line! ""Wow!"", the masses cried";      public static class Extensions      { -        // EXTENSION FUNCTIONS +        // EXTENSION METHODS          public static void Print(this object obj)          {              Console.WriteLine(obj.ToString()); @@ -911,6 +913,35 @@ on a new line! ""Wow!"", the masses cried";          public DbSet<Bicycle> Bikes { get; set; }      } + +    // Classes can be split across multiple .cs files +    // A1.cs +    public partial class A +    { +        public static void A1() +        { +            Console.WriteLine("Method A1 in class A"); +        } +    } + +    // A2.cs +    public partial class A +    { +        public static void A2() +        { +            Console.WriteLine("Method A2 in class A"); +        } +    } + +    // Program using the partial class "A" +    public class Program +    { +        static void Main() +        { +            A.A1(); +            A.A2(); +        } +    }  } // End Namespace  ``` | 
