///<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; }
/// <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); } }
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(); }
static StaticCurrencyConverter() { Converter = new converter(); }
public static void Init() { Converter = new converter(); }
///<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) { }
public void convert(converter c) { c(this); }
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"); } }
(expression, dialect, converter, helper) => new CustomColumnOperation(expression, dialect, converter, helper),