using System;
using System.Windows.Forms;
namespace X
{
internal static partial class Y
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(A = new fmA());
// bla-bla-bla with login
Application.Run(B = new fmB());
}
internal static fmA A;
internal static fmB B;
}
}
Как закрыть главную форму из дочерней?буквальный ответ - ни как, закрытие главной формы, это завершение
Application.Run(A = new fmXXX());
и если вы не модифицирутете код Main
- тогда это завершение программы {"userId":"тогда первый элемент отбрасываем, все остальные начинаются с искомой величины, надо только хвост
"} bla-bla-blaотрубить
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace parsejson111
{
class Program
{
const string data = "{\"anchor\":\"aaabbbccc==\",\"members\":[{\"userId\":\"111\"},{\"userId\":\"2222\"},{\"userId\":\"333\"},{\"userId\":\"444\"}],\"has_more\":true}";
// фишки замера заложены, но разница может проявиться только на больших объемах ))
static void Main(string[] args)
{
Console.WriteLine("data:");
Console.WriteLine(data);
var sw = new Stopwatch();
sw.Start();
var ts = sw.Elapsed; // лень объявлять тип
json();
hand();
lazy();
sw.Stop();
Console.WriteLine("press any key to continue...");
Console.ReadKey();
void json() // возможно существует более элегантный вариант. тут у меня опыта мало ))
{
sw.Reset();
Console.WriteLine("... json");
var j = JObject.Parse(data);
var r = j["members"].Children().ToList();
foreach (var u in r)
{
var uid = JObject.Parse(u.ToString());
var id = uid["userId"].Value<string>();
Console.WriteLine(id);
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
void hand() // зато тут гарантирую - оптимизировать лучше не реально, и по перфомансу вряд ли можно лучше ))
{
sw.Reset();
Console.WriteLine("... hand");
var p = 0;
while ((p = data.IndexOf("{\"userId\":\"", p)) > 0)
{
p += 11; //длина шаблона. заодно избегаем риска зацикливания
var f = data.IndexOf("\"}", p);
Console.WriteLine(data.Substring(p, f - p));
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
void lazy()
{
sw.Reset();
Console.WriteLine("... lazy");
var t = data.Split(new string[] { "{\"userId\":\"" }, StringSplitOptions.RemoveEmptyEntries);
for (var i = 1; i < t.Length; i++) // здесь и везде - обработка пустого множества на вашей совести
{
var id = t[i].Split(new string[] { "\"}" }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(id[0]);
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
}
}
}
using System;
using System.IO;
namespace mypath
{
class Program
{
static void Main(string[] args)
{
var p = Environment.CurrentDirectory;
Console.WriteLine(p);
Console.ReadKey();
p += @"\..\..\App.config";
var appcfg = File.ReadLines(p);
foreach(var l in appcfg)
Console.WriteLine(l);
Console.ReadKey();
}
}
}
big integer хранит uint[] разрядовuint[] в котором разрядом является uint
после того, как условие int1 > 20 выполнится, остальные проверяться, конечно не будут,во первых будут, да задача "поспит", но (upd) потом значения проверяться все равно будут
while (true)
{
if (int1 > 20)
{
//код
System.Threading.Thread.Sleep(200000);
continue;
}
// ...
}
на что обратить внимание после Visual Studio, мануалов по C# и Аллена Джонса?на гугл (а еще на кнопку F1 в студии, на любом слове)
рисование простейших элементов GUI Windowsначните с winforms, рисовать ни чего не надо, все в студии
На сколько сильно взаимодействуют эти два "языка".тут и есть фундаментальное заблуждение - это не два языка
Я на js, php пишу
Гуглю дальше узнаю про Rest api и RestSharp, но так и не понимаю как, что, зачем, куда...это только усложнения*.
Как обработать данные на сервере? Это php или js скрипты?
Необходимо чтобы при инициализации объекта (т.е. вызове конструктора) метод проверял сумму этих переменных и либо по новой запрашивал значения либо прерывал с ошибкой.
int topA = 95;
int topB = 1;
int topC = 89;
после создания класса, проверять ни чего не надо. а вот после манипуляций - да, возможно надо. но это уже уровень вашей ответственности, при написании логики (реализуйте свою цель, вот и все) NullReferenceExceptionи так сообщает суть ошибки
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar!=' ')
return;
else
e.Handled = true;
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
кто вас надоумил вмешиваться в обработку этих событий? я не к тому что нельзя, просто надо хорошо понимать зачем? *На коленкене работает.. при чем много по чему..
using System;
using System.IO;
using System.Linq;
namespace lastChar
{
class Program
{
static void Main(string[] args)
{
var lines = File.ReadAllLines(@"C:\Windows\System32\drivers\etc\hosts"); // для примера
for (var i=0; i < lines.Count(); i++) // в итераторе foreach элементы readonly.. типа функциональный стиль
{
if (!string.IsNullOrWhiteSpace(lines[i])) // а то на пустых строках эксепшен будем ловить
{
// строка, блин, штука то то же не изменяемая.. вот засада
var ch = lines[i].ToCharArray();
var idx = ch.Length - 1;
ch[idx] = Char.ToUpper(ch[idx]);
lines[i] = new string(ch);
}
Console.WriteLine(lines[i]);
}
Console.ReadKey();
//сохраняйте как хотите
//... и да - точки (решетки) в апкейсе остаются точками. только буквы можно апкейсить
}
}
}
label1.Text = "bingo!";
самой первой в обработчике, и лишь потом бы усложнял логику using System;
using System.Diagnostics;
namespace stack
{
public class Program
{
static private int max = 100_000_000;
class Stack
{
private int[] sd = new int[max];
private int sp = -1;
public void Push(int data) => sd[++sp] = data;
public int Pop() => sd[sp--];
public void Rep(int sp, int data) => sd[sp] = data;
public void Inc(int sp, int data) => sd[sp] += data;
public void Dec(int sp, int data) => sd[sp] -= data;
public void Xor(int sp, int data) => sd[sp] %= data;
}
public static void StackTest()
{
var watch = new Stopwatch();
var stack = new Stack();
var count = max;
watch.Start();
for (int i = 0; i < count; i++)
stack.Push(i);
watch.Stop();
Console.WriteLine(watch.Elapsed);
watch.Restart();
for (int i = 0; i < count; i++)
stack.Xor(i, 2);
watch.Stop();
Console.WriteLine(watch.Elapsed);
watch.Restart();
for (int i = 0; i < count; i++)
stack.Pop();
watch.Stop();
Console.WriteLine(watch.Elapsed);
Console.ReadKey();
}
public static void Main() => StackTest();
}
}
bool empty() => sp < 0;
.. ну в смысле для данного прототипа ))