Как создать вложненность одного метода в другой?

не могу понять, как реализовывается вложенность. необходимо реализовать подобное:есть 2 вида продукта, пускай А и Б. Для каждого продукта необходимо подсчитать определенные величины.Думал реализовать так:1. создаем класс2. в классе создаем 2 метода: А и Б.3. в методе еще нужные нам методы (уже считающие)но не получилось что-то такое. как правильно такие вещи делать?
3 ответа

Методы вложенными (в твоем смысле) не бывают никогда и нигде.То что тебе нужно - классическая задача...В "тупом" варианте это может выглядеть так:
public class ClassA{    public void SomeMethod()    {        Console.WriteLine("ClassA.SomeMethod()");    }}public class ClassB{    public void M1()    {        Console.WriteLine("ClassB.M1()");    }}public class Products{    public readonly ClassA A = new ClassA();    public readonly ClassB B = new ClassB();}
Используешь так:
    Products p = new Products();    p.A.SomeMethod();    p.B.M1();
Но на практике так делать не годится. Это только для примера, чтоб ты понял, о чем ты спрашиваешь.На практике должно быть в зависимости от задачи. Типично так:1. создаем базовый абстрактный класс для всех продуктов (ProductBase)2. создаем еще два класса ProductA и ProductB наследованных от первого3. создаем класс ProductManager, который будет оперировать классами ProductBase (НЕ конкретными ProductA и ProductB)В последнем варианте все становится расширяемым и готовым в любой момент времени принять новые реализации продуктов (ProductBase)


а можно какой-нибудь простенький пример для лучшего усвоения? 


St33l
public interface IProduct{     int GetValue();}
public class ProductA : IProduct{   int GetValue() { return 100; }}
public class ProductB : IProduct{   int GetValue() { return 200; }}
...public  int GetProductValue(IProduct prod){    return prod.GetValue();}......  ProductA p1 = new ProductA();  ProductB p2 = new ProductB();  int a = GetProductValue(p1);//100  int b = GetProductValue(p2);//200...