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 | 
