static void Main(string[] args) { var single1 = new SingleValue(); var single2 = new SingleValue(); var many1 = new ManyValues(); var many2 = new ManyValues(); single1.Value = 1; single2.Value = 2; many1.Add(single1.Value); many1.Add(single2.Value); many2.Add(single2.Value); many2.Add(single2.Value); List <IValueContainer> x = new List <IValueContainer>(); x.Add(many1); x.Add(many2); x.Add(single1); x.Add(single2); Console.WriteLine(x.Sum()); Console.ReadLine(); }
public void Test() { var singleValue = new SingleValue { Value = 11 }; var otherValues = new ManyValues(); otherValues.Add(22); otherValues.Add(33); Assert.That(new List <IValueContainer> { singleValue, otherValues }.Sum(), Is.EqualTo(66)); }
// Objects can use other objects via inheritance/composition // Some composed and singular objects need similar/identical behaviors // Composite design pattern lets us treat both types of objects uniformly // C# has special support for the enumeration concept // A single object can masquerade as a collection with yield return this; public static void DemoNumberThree() { var singleValue = new SingleValue { Value = 11 }; var otherValues = new ManyValues { 22, 33 }; WriteLine(new List <IValueContainer> { singleValue, otherValues }.Sum() == 66 ? "Yey it works!" : "Error 404"); }
public void Test() { var s = new SingleValue { Value = 10 }; var m = new ManyValues(); m.Add(20); m.Add(30); Assert.That(new List <IValueContainer> { s, m }.Sum(), Is.EqualTo(60)); }
static void Main(string[] args) { var manyValues = new ManyValues() { 1, 2, 3 }; var singleValue = new SingleValue(4); var list = new List <IValueContainer> { manyValues, singleValue }; Console.WriteLine(list.Sum()); }
static void Main(string[] args) { var single = new SingleValue { Value = 3 }; Console.WriteLine($"Single sum: {single.Sum()}"); var many = new ManyValues(); many.Add(12); many.Add(6); Console.WriteLine($"Single sum: {many.Sum()}"); Console.ReadKey(); }
static void Main(string[] args) { var singleValue = new SingleValue { Value = 11 }; var otherValues = new ManyValues { 22, 33 }; var sum = new List <IValueContainer> { singleValue, otherValues }.Sum(); Console.WriteLine($"Sum: {sum}"); }
public static void Start() { var singleValue = new SingleValue { Value = 11 }; var otherValues = new ManyValues(); otherValues.Add(22); otherValues.Add(33); Console.WriteLine(new List <IValueContainer> { singleValue, otherValues }.Sum()); Console.WriteLine(ExtensionMethods53.Sum(new List <IValueContainer> { singleValue, otherValues })); }
public void Sum_AddMultipleValues_ReturnsSum() { var singleValue = new SingleValue() { Value = 4 }; var manyValues = new ManyValues { 1, 2 }; var container = new List <IValueContainer>() { singleValue, manyValues }; var sum = container.Sum(); Assert.That(sum, Is.EqualTo(7)); }
public static void Main(string[] args) { var singleValue = new SingleValue { Value = 11 }; var otherValues = new ManyValues(); otherValues.Add(22); otherValues.Add(33); var sum = new List <IValueContainer> { singleValue, otherValues }.Sum(); var s = new SingleValue(); Console.WriteLine(sum); Console.ReadKey(); }
static void DemoComposite() { ManyValues items = new ManyValues(); items.Add(10); items.Add(30); items.Add(18); IValueContainer item = new SingleValue() { Value = 6 }; List <IValueContainer> containters = new List <IValueContainer>(); //containters.Add(items); //containters.Add(item); }
static void Main(string[] args) { List <int> numbersList = new List <int> { 1, 4, 5, 6, 3, 4 }; var val = new SingleValue(); val.Value = 5; var singleValue = val.Sum(); Console.WriteLine($"Single value is {singleValue}"); var many = new ManyValues(); many.AddRange(numbersList); var manyValues = many.Sum(); Console.WriteLine($"Sum of many values is {manyValues}"); }
static void Main(string[] args) { var value1 = new SingleValue { Value = 3 }; var values1 = new ManyValues { 4, 5 }; Console.WriteLine(value1.Sum()); var result = values1.Sum(); Console.WriteLine(result); var totalValues = new List <IValueContainer> { value1, values1 }; Console.WriteLine(totalValues.Sum()); }
static void Main(string[] args) { SingleValue sv = new SingleValue() { Value = 5 }; ManyValues mv = new ManyValues() { 5, 5 }; var list = new List <IValueContainer>() { sv, mv }; Console.WriteLine($"Sum is: {list.Sum()}"); Console.ReadLine(); }
static void Main(string[] args) { { var value = new SingleValue { Value = 55 }; var sum = ExtensionMethods.Sum(new List <IValueContainer> { value }); Debug.Assert(55 == sum); } { var values = new ManyValues { 22, 33, 44 }; var sum = ExtensionMethods.Sum(new List <IValueContainer> { values }); Debug.Assert(99 == sum); } }
public static void Main() { //Builder var builder = new CodeBuilder("Person").AddField("string", "Name").AddField("int", "Age"); Console.WriteLine(builder.ToString()); //Factory var factory = new F.Factory(); var person = factory.CreateInstance("Alexander"); // Numbers of models should be as pointers to the Factories if we want to have different models instatiated from one Factory Console.WriteLine(person); //Prototype Point one = new Point { X = 1, Y = 2 }; Point two = new Point { X = 3, Y = 4 }; Line line = new Line { Start = one, End = two }; Line copiedLine = line.DeepCopyJson(); copiedLine.Start.X = 57; Console.WriteLine(line); Console.WriteLine(copiedLine); //Flyweight var sentence = new Sentence("Hasta la vista"); sentence[0].IsCapitalized = true; Console.WriteLine(sentence); //Proxy var person1 = new PersonProxy(new Person { Age = 21 }); Console.WriteLine(person1.Drive()); person1.Age = 14; Console.WriteLine(person1.Drink()); //Bridge var circle = new Circle(); var square = new Square(); Console.WriteLine(circle.ToString()); Console.WriteLine(square.ToString()); //Composite var manyValues = new ManyValues { new SingleValue { Value = 5 }, new SingleValue { Value = 3 }, new SingleValue { Value = 2 } }; var some = manyValues.Sum(); //ChainOfResponsibility var game = new Game(); var goblin = new Goblin(game); var goblinKing = new GoblinKing(game); //Mediator Use.Mediator mediator = new Use.Mediator(); var p1 = new Participant(mediator); var p2 = new Participant(mediator); p1.Say(2); p2.Say(4); //Memento var ba = new BankAccount(100); var m1 = ba.Deposit(50); // 150 var m2 = ba.Deposit(25); // 175 Console.WriteLine(ba); // restore to m1 ba.Restore(m1); Console.WriteLine(ba); ba.Restore(m2); Console.WriteLine(ba); }