01-Navigation/5-Navigate_class_hierarchies/ExampleCode/ICustomer.cs (43 lines of code) (raw):

namespace JetBrains.ReSharper.Koans.Navigation.ExampleCode { // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public interface ICustomer { string Id { get; } string Name { get; } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> int PercentageDiscount { get; } } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public class Customer : ICustomer { // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public Customer(string id, string name) { Id = id; Name = name; PercentageDiscount = 0; } public string Name { get; private set; } public string Id { get; private set; } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public virtual int PercentageDiscount { get; private set; } } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public class SilverCustomer : Customer { public SilverCustomer(string id, string name) : base(id, name) { } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public override int PercentageDiscount { get { return 10; } } } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public class GoldCustomer : Customer { public GoldCustomer(string id, string name) : base(id, name) { } // Navigate back // <shortcut id="Navigate back">Ctrl+- (minus) (ReSharper VisualStudio Keymap)</shortcut> // <shortcut id="Navigate back">Ctrl+Alt+Left (Rider Default IntelliJ Keymap)</shortcut> public override int PercentageDiscount { get { return 25; } } } }