diff options
author | Max Yankov <golergka@gmail.com> | 2013-08-17 23:28:55 +0200 |
---|---|---|
committer | Max Yankov <golergka@gmail.com> | 2013-08-17 23:28:55 +0200 |
commit | a225349acb165084a9da95f2da631a7525c513d3 (patch) | |
tree | 015240e0f72cee5857cc38458c4b76652c9bca28 | |
parent | cae70d430e40478e2c916489e53ffcb24f8fe024 (diff) |
C#: interfaces
-rw-r--r-- | csharp.html.markdown | 32 |
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 |