Exemplo n.º 1
0
 ///<summary>Initialize a new Table with a specified name, helper, converter,
 /// indices, check constraints, and columns.</summary>
 ///<param name="name">The name of the table.</param>
 ///<param name="helper">The handle to the database.</param>
 ///<param name="convert">The converter to convert <see cref="IRow"/> to T.</param>
 ///<param name="indices">The index constraints of the table.</param>
 ///<param name="checks">The check constraints of the table.</param>
 ///<param name="columns">The columns of the table.</param>
 public SinglePKCacheTable(string name, IDbHelper helper, converter convert,
                           IConstraint[] indices, IConstraint[] checks, params IColumn[] columns) :
     base(name, helper, indices, checks, columns)
 {
     Init();
     this.convert = convert;
 }
Exemplo n.º 2
0
 /// <summary>
 /// 委托关联表达式转SQL表达式
 /// </summary>
 /// <param name="expression">委托关联表达式</param>
 /// <param name="isCache">是否缓存</param>
 /// <param name="nameType">获取参数名称方式</param>
 /// <returns>SQL表达式,参数成员名称集合</returns>
 public static keyValue<string, list<string>> Convert(LambdaExpression expression, bool isCache, getNameType nameType)
 {
     nameCache cache;
     if (isCache && expressionCache.TryGetValue(expression, out cache))
     {
         string sql = cache[nameType];
         if (sql != null) return new keyValue<string, list<string>>(sql, cache.ParameterMemberNames);
         converter converter = new converter(expression, nameType);
         cache[nameType] = sql = converter.sql;
         cache.ParameterMemberNames = converter.parameterMemberNames;
         return new keyValue<string, list<string>>(sql, cache.ParameterMemberNames);
     }
     else
     {
         converter converter = new converter(expression, nameType);
         string sql = converter.sql;
         if (isCache)
         {
             expressionCache[expression] = cache = new nameCache();
             cache.ParameterMemberNames = converter.parameterMemberNames;
             cache[nameType] = sql;
         }
         return new keyValue<string, list<string>>(sql, converter.parameterMemberNames);
     }
 }
Exemplo n.º 3
0
        public static List <int> Map(this int[] values, converter convert)
        {
            List <int> converted_values = new List <int>();

            foreach (int item in values)
            {
                converted_values.Add(convert(item));
            }


            return(converted_values);


            throw new NotImplementedException();
        }
Exemplo n.º 4
0
 static StaticCurrencyConverter()
 {
     Converter = new converter();
 }
Exemplo n.º 5
0
 public static void Init()
 {
     Converter = new converter();
 }
Exemplo n.º 6
0
 ///<summary>Initialize a new Table with a specified name, helper, converter,
 /// and columns.</summary>
 ///<param name="name">The name of the table.</param>
 ///<param name="helper">The handle to the database.</param>
 ///<param name="convert">The converter to convert <see cref="IRow"/> to T.</param>
 ///<param name="columns">The columns of the table.</param>
 public SinglePKCacheTable(string name, IDbHelper helper, converter convert,
                           params IColumn[] columns) : this(name, helper, convert, null, null, columns)
 {
 }
Exemplo n.º 7
0
 public void convert(converter c)
 {
     c(this);
 }
Exemplo n.º 8
0
        static void Main()
        {
            int acc = 0;

            e_circuit[] e = new e_circuit[8];
            float[]     Rr = new float[9];
            converter[] CV = new converter[50];
            float       ampermetr, voltmeter1, voltmeter2, I = 0, U1 = 0, U2 = 0, u1 = 0, u2 = 0, ii, t_crit, t_k, time_electron_movement, t_conductor = 0, t_environment = 0, eds = 0, ro_sopr = 0, t_max = 0, t_mid = 0;
            float       timer = 0, Q = 0;

            acc = 1;

            t_conductor = 293.15f;

            t_environment = 293.15f;

            eds = 12;

            ro_sopr = 0.017f;

            e[0].R = 2;

            e[1].R = 1;

            e[2].R = 2;

            e[3].R = 3;

            e[4].R = 4;

            e[5].R = 5;

            e[6].R = 6;

            e[0].a = 0.005f;

            e[1].a = 0.004f;

            e[2].a = 0.001f;

            e[3].a = 0.002f;

            e[4].a = 0.0017f;

            e[5].a = 0.0034f;

            e[6].a = 0.007f;

            e[7].a = 0.0043f;

            e[7].k = 3.2f;

            e[7].k_e = 0.7f;

            e[0].k = 0.6f;

            e[1].k = 1.2f;

            e[2].k = 1.4f;

            e[3].k = 1.3f;

            e[4].k = 1.6f;

            e[5].k = 1.1f;

            e[6].k = 1.3f;

            e[1].k_e = 0.6f;

            e[2].k_e = 0.8f;

            e[3].k_e = 0.7f;

            e[4].k_e = 0.9f;

            e[5].k_e = 1.1f;

            e[6].k_e = 0.3f;

            e[0].ro = 3213;

            e[1].ro = 7645;

            e[2].ro = 8736;

            e[3].ro = 2348;

            e[4].ro = 2649;

            e[5].ro = 5032;

            e[6].ro = 1342;

            e[7].ro = 8960;

            e[0].c = 324;

            e[1].c = 475;

            e[2].c = 237;

            e[3].c = 862;

            e[4].c = 904;

            e[5].c = 283;

            e[6].c = 732;

            e[7].c = 400;

            e[1].s = 5;

            e[2].s = 4.6f;

            e[3].s = 2.4f;

            e[4].s = 13.4f;

            e[5].s = 2.14f;

            e[6].s = 23.4f;

            e[7].s = 0.4f;

            time_electron_movement = 1;

            u1 = 0.2f;

            u2 = 0.2f;

            ii = 0.2f;

            t_crit = 1000;

            /*
             * Console.WriteLine("Введите необходимую точность расчёта (целое число, минимальное значение - 1):\n");
             * acc =int.Parse(Console.ReadLine());
             * time_electron_movement = 1 / acc;
             * Console.WriteLine("Введите начальную температуру проводника, °K:\n");
             * t_conductor = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите температуру окружающей среды, °K:\n");
             * t_environment = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите значение ЭДС источника, В:\n");
             * eds = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите удельное сопротивление проводника, Ом·мм²/м:\n");
             * ro_sopr = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите сопротивление источника, Oм:\n");
             * e[0].R = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите температурный коэффициент сопротивления проводника (если не знаете - введите 0), °K⁻¹:\n");
             * e[7].a = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите температурный коэффициент сопротивления источника (если не знаете - введите 0), °K⁻¹:\n");
             * e[0].a = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите коэффициент теплопередачи в проводнике (если не знаете - введите 1), Вт/(м²·°K):\n");
             * e[7].k = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите коэффициент теплопередачи между проводником и окружающей средой (если не знаете - введите 1), Вт/(м²·°K):\n");
             * e[7].k_e = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите коэффициент теплопередачи между источником тока и окружающей средой (если не знаете - введите 1), Вт/(м²·°K):\n");
             * e[0].k_e = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите плотность материала проводника, кг/м³:\n");
             * e[7].ro = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите среднюю плотность источника тока, кг/м³:\n");
             * e[0].ro = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите удельную теплоёмкость материала проводника, Дж/(кг·°С):\n");
             * e[7].c = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите удельную теплоёмкость источника, Дж/(кг·°С):\n");
             * e[0].c = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите площадь поперечного сечения проводника, мм²:\n");
             * e[7].s = float.Parse(Console.ReadLine());
             * for (int i = 1; i < 7; i++)
             * {
             *  Console.WriteLine("Введите сопротивление резистора R%d, Oм:\n", i);
             *  e[i].R = float.Parse(Console.ReadLine());
             *  e[i].R = e[i].R / (10 * acc);
             *  Console.WriteLine("Введите температурный коэффициент сопротивления резистора R%d (если не знаете - введите 0), °K⁻¹:\n", i);
             *  e[i].a = float.Parse(Console.ReadLine());
             *  Console.WriteLine("Введите коэффициент теплопередачи в резисторе R%d (если не знаете - введите 1), Вт/(м²·°K):\n", i);
             *  e[i].k = float.Parse(Console.ReadLine());
             *  Console.WriteLine("Введите коэффициент теплопередачи между резистором R%d и окружающей средой (если не знаете - введите 1), Вт/(м²·°K):\n", i);
             *  e[i].k_e = float.Parse(Console.ReadLine());
             *  Console.WriteLine("Введите плотность материала резистора R%d, кг/м³:\n", i);
             *  e[i].ro = float.Parse(Console.ReadLine());
             *  Console.WriteLine("Введите удельную теплоёмкость материала резистора R%d, Дж/(кг·°С):\n", i);
             *  e[i].c = float.Parse(Console.ReadLine());
             *  Console.WriteLine("Введите площадь поперечного сечения резистора R%d, мм²:\n", i);
             *  e[i].s = float.Parse(Console.ReadLine());
             * }
             * Console.WriteLine("Введите коэффициент умножения времени (по умолчанию - 1):\nЧем он больше, тем расчёт выполняется быстрее, но грубее,\nчем он меньше - расчёт более точен, но выполняется медленнее.\n");
             * t_k = float.Parse(Console.ReadLine());
             * time_electron_movement *= t_k;
             * Console.WriteLine("Введите цену деления для первого вольтметра (по умолчанию 0,2 вольта), В:\n");
             * u1 = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите цену деления для второго вольтметра (по умолчанию 0,2 вольта), В:\n");
             * u2 = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите цену деления для амперметра (по умолчанию 0,2 ампера), А:\n");
             * ii = float.Parse(Console.ReadLine());
             * Console.WriteLine("Введите критическую температуру в цепи (при которой либо плавится проводник, либо выходят из строя приборы), °K:\n");
             * t_crit = float.Parse(Console.ReadLine());*/
            e[0].k  = e[7].k;
            e[0].s  = (float)Math.PI * (10f * 10f);          //площадь поперечного сечения источника
            e[0].m  = e[0].ro * (e[0].s / 1000000f) * 0.07f; //масса источника
            e[0].sp = 0.07f * (2 * (float)Math.PI * 0.01f);  //площадь боковой поверхности источника
            for (int i = 0; i < 8; i++)                      //перевод в метры
            {
                e[i].s /= 1000000;
            }
            chamber[] circuit = new chamber[638 * acc + 1];
            generation(acc, circuit, t_conductor, CV);
            for (int i = 0; i < 1; i++)
            {
                e[7].R = ro_sopr * 0.002f / ((e[7].s * 1000000f) * acc); //сопротивление элементарного участка проводника
                for (int j = 1; j < 8; j++)
                {
                    e[j].m  = e[j].ro * (e[j].s) * (0.002f / acc);                                                //масса элементарного участка цепи
                    e[j].sp = (0.002f / acc) * (2f * (float)Math.PI * (float)Math.Sqrt(e[j].s / (float)Math.PI)); //площадь боковой поверхности элементарного участка цепи
                    e[j].R /= (10 * acc);
                }
                impedance(e, Rr, acc, circuit);
                Console.WriteLine("Полное сопротивление цепи равно: %f Ом\n" + Rr[0]);
                converter_gen(CV, Rr, e);
                electricity(ref t_mid, ref Q, e, Rr, CV, t_environment, time_electron_movement, eds, acc, circuit, ref t_max, ref I, ref U1, ref U2);

                timer     = timer + time_electron_movement;
                ampermetr = I * 4 / ii;
                if (I * 4 / ii > 180)
                {
                    Console.WriteLine("Внимание: перегрузка амперметра!\n");
                    ampermetr = 180;
                }
                Console.WriteLine("Показания амперметра (в градусах отклонения стрелки (начальный 0+ конечный 180)): %f°\n" + ampermetr);
                Console.WriteLine("Показания амперметра (в амперах): %f А\n" + I);
                voltmeter1 = U1 * 4 / u1;
                if (U1 * 4 / u1 > 180)
                {
                    Console.WriteLine("Внимание: перегрузка первого вольтметра!\n");
                    voltmeter1 = 180;
                }
                Console.WriteLine("Показания первого вольтметра (в градусах отклонения стрелки (начальный 0+ конечный 180)): %f°\n" + voltmeter1);
                Console.WriteLine("Показания первого вольтметра (в вольтах): %f В\n" + U1);
                voltmeter2 = U2 * 4 / u2;
                if (U2 * 4 / u2 > 180)
                {
                    Console.WriteLine("Внимание: перегрузка второго вольтметра!\n");
                    voltmeter2 = 180;
                }
                Console.WriteLine("Показания второго вольтметра (в градусах отклонения стрелки (начальный 0+ конечный 180)): %f°\n" + voltmeter2);
                Console.WriteLine("Показания второго вольтметра (в вольтах): %f В\n" + U2);
                Console.WriteLine("Зафиксированная максимальная температура: %f°K\n" + t_max);
                Console.WriteLine("Средняя температура в цепи: %lf°K\n" + t_mid / (638 * 1 * acc));
                Console.WriteLine("Времени от начала работы программы в виртуальном мире самой программы прошло: %lf с\n" + timer);
                Console.WriteLine("Теплоты окружающей среде отдано: %lf Дж\n" + Q);
                for (int j = 0; j < 50; j++)
                {
                    Console.WriteLine("Температура участка  °К\n" + j + circuit[CV[j].mid].t);
                }
                Console.WriteLine("\n");
            }
        }
Exemplo n.º 9
0
 (expression, dialect, converter, helper) => new CustomColumnOperation(expression, dialect, converter, helper),