summaryrefslogtreecommitdiffhomepage
path: root/csharp.html.markdown
diff options
context:
space:
mode:
authorMax Yankov <golergka@gmail.com>2013-08-17 23:28:55 +0200
committerMax Yankov <golergka@gmail.com>2013-08-17 23:28:55 +0200
commita225349acb165084a9da95f2da631a7525c513d3 (patch)
tree015240e0f72cee5857cc38458c4b76652c9bca28 /csharp.html.markdown
parentcae70d430e40478e2c916489e53ffcb24f8fe024 (diff)
C#: interfaces
Diffstat (limited to 'csharp.html.markdown')
-rw-r--r--csharp.html.markdown32
1 files changed, 31 insertions, 1 deletions
diff --git a/csharp.html.markdown b/csharp.html.markdown
index 0012fcb3..55de415d 100644
--- a/csharp.html.markdown
+++ b/csharp.html.markdown
@@ -557,6 +557,36 @@ namespace Learning
return reuslt;
}
}
+
+ // Interfaces only contain signatures of the members, without the implementation.
+ interface IJumpable
+ {
+ void Jump(int meters); // all interface members are implicitly public
+ }
+
+ interface IBreakable
+ {
+ bool Broken { get; } // interfaces can contain properties as well as methods, fields & events
+ }
+
+ // Class can inherit only one other class, but can implement any amount of interfaces
+ class MountainBike : Bicycle, IJumpable, IBreakable
+ {
+ int damage = 0;
+
+ public void Jump(int meters)
+ {
+ damage += meters;
+ }
+
+ public void Broken
+ {
+ get
+ {
+ return damage > 100;
+ }
+ }
+ }
} // End Namespace
```
@@ -567,7 +597,7 @@ namespace Learning
* Attributes
* Generics (T), Delegates, Func, Actions, lambda expressions
* Static properties
- * Exceptions, Interfaces, Abstraction
+ * Exceptions, Abstraction
* LINQ
* ASP.NET (Web Forms/MVC/WebMatrix)
* Winforms