summaryrefslogtreecommitdiffhomepage
path: root/csharp.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'csharp.html.markdown')
-rw-r--r--csharp.html.markdown47
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
```