Информация об изменениях

Сообщение Re[3]: Таблица из двух параметров - как лучше записать? от 15.11.2021 16:04

Изменено 15.11.2021 16:21 Sinclair

Re[3]: Таблица из двух параметров - как лучше записать?
Здравствуйте, Shmj, Вы писали:
S>А если не просто значение нужно вернуть — а вызвать некие методы?
Омг.
https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQMwAJboMLoN7LpGYZRwBsmArADwCWAdgC4A06AykwE6MDmAfAG0WAXXQB9ABYBDBsAA2AUy4BndAF50DRQHdq9Zm048GA4SIJJi1m3gCCcNgCFHOOAF8WhGz/sxn/jgwnt4+1vaozpE4qO6hNu4A3PFomAAs6ACyABSMTOgqTNJMiq55BUUlMACU+PHWZACc2VKyCsoqgoXFpWzdVSLVyVbEcSNEKaQUmHAADOgOuczo0rXq/CsAdAAqAPbGfNlDkzOUZPMuS/mrGhvZMABUqzv73IfH4ySnM/PYcFcrNZ3VBPaovA6mI7DE5kM5zBYwAE3dbobLSMBwMF7CG8KEw6bndBORHlZF3R7ozHgt6Qj4NKZw34k5Zk1EgylY14mXEffGMhaoJFA1HSAC0VOxNJ5w3p30JTkFpOF9ye4s5OLxn1SsJ+MSFtzZqolXPe0KQ7iAA=

public class C {
    public static Func<int, String>[,] _handlers = new Func<int, String>[,]{
            {A1, B1, C1},
            {A2, B2, C2},
            {A3, B3, C3}
        };
    public void M(int state1, int state2) {
        Console.WriteLine(_handlers[state1, state2]);
    }
    
    public static string A1(int a) => a.ToString();
    public static string B1(int a) => (2*a).ToString();
    public static string C1(int a) => (3*a).ToString();

    public static string A2(int a) => (a+1).ToString();
    public static string B2(int a) => (2*a+1).ToString();
    public static string C2(int a) => (3*a+1).ToString();

    public static string A3(int a) => (a-1).ToString();
    public static string B3(int a) => (2*a-1).ToString();
    public static string C3(int a) => (3*a-1).ToString();

}
Re[3]: Таблица из двух параметров - как лучше записать?
Здравствуйте, Shmj, Вы писали:
S>А если не просто значение нужно вернуть — а вызвать некие методы?
Омг.
https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQMwAJboMLoN7LpGYZRwBsmArADwCWAdgC4A06AykwE6MDmAfAG0WAXXQB9ABYBDBsAA2AUy4BndAF50DRQHdq9Zm048GA4SIJJi1m3gCCcNgCFHOOAF8WhGz/sxn/jgwnt4+1vaozpE4qO6hNu4A3PFomAAs6ACyABSMTOgqTNJMiq55BUUlgeUAbtLyAK6KAJT48dZkAJzZUrIKyiqChcWlbMNVItl1jS3NyVbEcQtEKaQUmHAADOgOuczo0q3q/AcAdAAqAPbGfNlzqxuUZNsue/mHGifZMABUhxfXbi3e7LEiPDbbbBwN4HI5fVB/ZoAm6mO7zB5kJ5bHYwGEfY7obLSMBwJFXFG8NEY9bPdBOXHlfFfX7E0nIoGokEdNZYyEM/ZMwkI1lkwEmSkg6m8naoPFwwnSAC0bPJHIl8254NpTlljPl3z+ytFFKpoNSmIhMTlnyFhpVYuB6KQ7iAA===

public class C {
    public static Func<int, String>[,] _handlers = new Func<int, String>[,]{
            {A1, B1, C1},
            {A2, B2, C2},
            {A3, B3, C3}
        };
    public void M(int state1, int state2, int value) {
        Console.WriteLine(_handlers[state1, state2](value));
    }
    
    public static string A1(int a) => a.ToString();
    public static string B1(int a) => (2*a).ToString();
    public static string C1(int a) => (3*a).ToString();

    public static string A2(int a) => (a+1).ToString();
    public static string B2(int a) => (2*a+1).ToString();
    public static string C2(int a) => (3*a+1).ToString();

    public static string A3(int a) => (a-1).ToString();
    public static string B3(int a) => (2*a-1).ToString();
    public static string C3(int a) => (3*a-1).ToString();

}